文档章节

easyui表格导出excel

随风而浮沉
 随风而浮沉
发布于 2015/12/10 17:30
字数 640
阅读 400
收藏 4
点赞 0
评论 0

在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
博文 37
码字总数 8542
作品 0
广州
程序员
第七节 - 部门管理模块(画一个datagrid表格)

在easyui中,datagrid组件需要用一个table标签去渲染。 PS: 在easyui的表格组件中,我们唯一要关心的就是 1.提交到什么地址: url 2.显示哪些字段。 比如,ID字段,你需要在th中设置一个fie...

剽悍一小兔 ⋅ 05/11 ⋅ 0

第五节 - easyUI的基本使用

1. 列表组件 datagrid 1.1 创建一个grid.html 1.2 引入easyUI的资源文件 1.3 绘制表格组件 Html: 效果: 1.1 编写后台程序,查询部门数据 在当前文件夹,新建一个dept.php 进行数据库连接测...

剽悍一小兔 ⋅ 05/07 ⋅ 0

jquery easyui tree控件复选框选择处理

------上级状态改变(勾选或取消勾选),所有下级状态跟着改变 ,在tree控件的onCheck事件中实现--------- cascadeCheck: false,//默认为true表示上下级勾选联动,false表示取消联动 onCheck: f...

AIU_GS ⋅ 05/22 ⋅ 0

使用easyui的DataGrid实现即时编辑(CRUD)

首先来个users.sql /MySQL Data TransferSource Host: localhostSource Database: mydbTarget Host: localhostTarget Database: mydbDate: 2011/6/3 13:59:12/ SET FOREIGNKEYCHECKS=0; -- T......

styleman ⋅ 05/10 ⋅ 0

第六节 - 部门管理模块(开始)

sql建表语句详见:https://www.jianshu.com/p/c88077ed9073 1.新建html模板 新建一个空白的txt文档,然后把后缀名改为.html 用任意一个编辑器打开,比如sublime,dreamweaver。 2.引入easyu...

剽悍一小兔 ⋅ 05/11 ⋅ 0

EasyUI Combobox中getValue和getText

在组织部项目中使用的Combobox都是通过<input>标签实现的,如下: <input id="checkPlace" class="easyui-combobox" name="checkPlace" data-options="valueField:'id',textField:'text',ur......

霜叶情 ⋅ 04/12 ⋅ 0

JEECG 3.7.5 Vue SPA 单页面应用版本发布

此版本为Vue+ElementUI SPA单页面应用版本,提供新一代风格代码生成器模板,采用Vue技术,提供两套精美模板ElementUI风格、Bootstrap分隔,大家速度体验,新鲜出炉,哇咔咔!! JEECG 是一款基...

Jeecg ⋅ 05/31 ⋅ 0

【php增删改查实例】第十四节 - 用户管理模块(起步)

从这一节开始,开始着手开发部门管理模块。 之后的内容就在此基础上进行增加。 1.用户查询 在目录中建立一个user文件夹,作为我们用户管理的模块。 打开这个文件,新建一个userManage.html文...

剽悍一小兔 ⋅ 06/01 ⋅ 0

你这个easyui 列回显的问题最后解决了吗,求教

@小波刘 你好,想跟你请教个问题:https://www.oschina.net/question/10202142142095你这个easyui 列回显的问题最后解决了吗,求教

营养快线送你520 ⋅ 05/09 ⋅ 0

基于easyui的文档管理系统springmvc+mybaits实现

开发背景 最近需要开发一个后台项目,想来想去决定使用easyui来做页面处理,于是就先自己做了一个练手的文件管理后台。 2. 架构 架构方面才用srpingmvc+mybaits+maven方式,页面用jsp,数据库...

无小农 ⋅ 06/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部