文档章节

easyui表格导出excel

随风而浮沉
 随风而浮沉
发布于 2015/12/10 17:30
字数 640
阅读 452
收藏 4

在table工具栏加导出按钮:

<table id="hwestable" class="easyui-datagrid"></table>

<div id="tb" style="padding:5px;height:auto">    

    <div style="text-align: right;">    

        <a href="#" class="easyui-linkbutton" id="exportExcel" iconCls="icon-export" plain="true">导出excel</a>

    </div> 

</div> 

触发:

$(function(){

$("#exportExcel").click(function () {

    Export("导出指标",$("#allindextable"));

     });

});

Export方法:

function Export(strXlsName, exportGrid) {

    var f = $('<form action="${ctx}/huawu/exportXls" method="post" id="fm1"></form>');

    var i = $('<input type="hidden" id="txtContent" name="txtContent" />');

    var l = $('<input type="hidden" id="txtName" name="txtName" />');

    i.val(ChangeToTable(exportGrid));

    i.appendTo(f);

    l.val(strXlsName);

    l.appendTo(f);

    f.appendTo(document.body).submit();

    document.body.removeChild(f);

}

exportXls方法:

/**

* 将报表导出为excel

* @param request

* @param response

*/

@SuppressWarnings("all")

@RequestMapping(value = "exportXls")

public void exportXls(HttpServletRequest request,

HttpServletResponse response) {

//step.1 设置,获取配置信息

String codedFileName = request.getParameter("txtName");

if(StringUtils.isEmpty(codedFileName)){

codedFileName="导出.xls";

}else{

codedFileName+=".xls";

}

String sheetName="导出信息";

String txtContent=request.getParameter("txtContent");

response.setContentType("Application/ms-excel");

PrintWriter out = null;

try {


//step.4 根据浏览器进行转码,使其支持中文文件名

if (isIE(request)) {

codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF-8");  

response.setHeader("content-disposition", "attachment;filename="

+ codedFileName);

/*response.setHeader("content-disposition", "attachment;FileFormat="

+ "-4143");*/

} else {

codedFileName = new String(codedFileName.getBytes("UTF-8"),

"ISO-8859-1");

response.setHeader("content-disposition", "attachment;filename="

+ codedFileName);

}

/*response.setHeader("content-disposition", "attachment;filename="

+ codedFileName);*/

/*response.setHeader("content-disposition", "attachment;FileFormat="

+ "-4143");*/

out = response.getWriter();

out.write("<html>\n<head>\n");  

out.write("<style type=\"text/css\">\n.pb{font-size:13px;border-collapse:collapse;} "+  

                          "\n.pb th{font-weight:bold;text-align:center;border:0.5pt solid windowtext;padding:2px;} " +  

                          "\n.pb td{border:0.5pt solid windowtext;padding:2px;}\n</style>\n</head>\n");  

out.write("<body>\n" + txtContent + "\n</body>\n</html>");

out.flush();

} catch (UnsupportedEncodingException e1) {


} catch (Exception e) {


} finally {

if(out!=null){

out.close();

}

}

}

protected boolean isIE(HttpServletRequest request) {

return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request

.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true

: false;

}


export.js:

function ChangeToTable(printDatagrid) {

    var tableString = '<table cellspacing="0" class="pb">';

    var frozenColumns = printDatagrid.datagrid("options").frozenColumns;  // 得到frozenColumns对象

    var columns = printDatagrid.datagrid("options").columns;    // 得到columns对象

    var nameList = new Array();


    // 载入title

    if (typeof columns != 'undefined' && columns != '') {

        $(columns).each(function (index) {

            tableString += '\n<tr>';

            if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') {

                for (var i = 0; i < frozenColumns[index].length; ++i) {

                    if (!frozenColumns[index][i].hidden) {

                        tableString += '\n<th width="' + frozenColumns[index][i].width + '"';

                        if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) {

                            tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"';

                        }

                        if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) {

                            tableString += ' colspan="' + frozenColumns[index][i].colspan + '"';

                        }

                        if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') {

                            nameList.push(frozenColumns[index][i]);

                        }

                        tableString += '>' + frozenColumns[0][i].title + '</th>';

                    }

                }

            }

            for (var i = 0; i < columns[index].length; ++i) {

                if (!columns[index][i].hidden) {

                    tableString += '\n<th width="' + columns[index][i].width + '"';

                    if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) {

                        tableString += ' rowspan="' + columns[index][i].rowspan + '"';

                    }

                    if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) {

                        tableString += ' colspan="' + columns[index][i].colspan + '"';

                    }

                    if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') {

                        nameList.push(columns[index][i]);

                    }

                    tableString += '>' + columns[index][i].title + '</th>';

                }

            }

            tableString += '\n</tr>';

        });

    }

    // 载入内容

    var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行

    for (var i = 0; i < rows.length; ++i) {

        tableString += '\n<tr>';

        for (var j = 0; j < nameList.length; ++j) {

            var e = nameList[j].field.lastIndexOf('_0');


            tableString += '\n<td';

            if (nameList[j].align != 'undefined' && nameList[j].align != '') {

                tableString += ' style="text-align:' + nameList[j].align + ';"';

            }

            tableString += '>';

            if (e + 2 == nameList[j].field.length) {

                tableString += rows[i][nameList[j].field.substring(0, e)];

            }

            else

                tableString += rows[i][nameList[j].field];

            tableString += '</td>';

        }

        tableString += '\n</tr>';

    }

    tableString += '\n</table>';

    return tableString;

}




© 著作权归作者所有

共有 人打赏支持
随风而浮沉
粉丝 3
博文 56
码字总数 10743
作品 0
广州
程序员
私信 提问
SpringMVC,EasyUI,MyBatis通用导出EXCEL方案求解

本人想实现,通用的基于SpringMVC,EasyUI,MyBatis的EXCEL方案。SpringMVC,REST风格URL,MyBatis使用mapper方式,使用Spring注解。 所有EasyUI datagrid查询对应的都是@ResponseBody方式返回...

小伙伴新手上路
2013/09/27
3.8K
2
JQuery EasyUI datagrid 生成的表格,如何导出Excel

JQuery EasyUI datagrid 生成的表格,其中有些表头、单元格已经合并,现在想导出Excel文件,网上搜了一下,前台可以导出,后台也可以导出。但是导出的Excel里面的样式对应的表头和单元格都没...

wangaowell
2014/03/15
4.8K
1
如何用easyui动态加载表格标题

在最近做的项目中涉及到了需要加载大量表格的功能,采用了easyui的datagrid,但是发现datdagrid表格标题需要手动写,这在表格多的情况是一件很麻烦的事情。经过了long long time 终于研究出来...

MissGu
2015/03/28
0
0
(JAVA)easyui datagrid 怎么动态获取到表头的名称?最好是在后台获取

网站是JAVA EE+ EASYUI 形式的,我现在动态或者静态方式创建了datagrid, 我想动态获取到表头的名称(最好是后台,因为我要做EXCEL导出datagrid的功能),下面是表格。 r然后给大家看一个我导...

KMSFan
2014/08/23
6.3K
1
ASP.net+MVC2+EasyUI搭建一个简单表格示例

一个非常基础的小例子,主要是利用VS2010提供的MVC框架,后台是ASP.NET,前台是EasyUI,然后利用EasyUI的datagrid来显示一个表格的数据。 1.首先创建MVC项目。VS2010自带MVC2(虽然已经比较老...

guoliang
2013/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day179-2018-12-16-英语流利阅读-待学习

《海王》:上映 7 天,票房突破 9 亿,DC 要翻身? Daniel 2018-12-16 1.今日导读 这部电影堪称“有《阿凡达》般的视觉奇观,《指环王》般的史诗质感,《夺宝奇兵》般的寻宝历险,《狮子王》...

飞鱼说编程
11分钟前
3
0
window下安装maven

1.下载软件包: 2.解压到当前的安装路径: D:\Maven3.5.3 3.添加环境变量: 新建一个名为:MAVEN_HOME 填写解压路径:D:\Maven3.5.3 打开path,添加:%MAVEN_HOME%\bin 确定即可。 4.验证环境...

狼王黄师傅
26分钟前
5
0
聊聊flink的FsCheckpointStorage

序 本文主要研究一下flink的FsCheckpointStorage CheckpointStorage flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/CheckpointStorage.java /** * CheckpointStor......

go4it
48分钟前
3
0
makefile 常用函数

Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员。今天我们来学习下makefile的常用函数。 《GNU make》h...

科陆李明
今天
20
0
Android 报错 Could not find com.android.tools.build:aapt2:3.2.1-4818971.

报错信息: Could not find com.android.tools.build:aapt2:3.2.1-4818971.Searched in the following locations: file:/C:/Users/96110/AppData/Local/Android/Sdk/extras/m2reposito......

lanyu96
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部