jqgrid 表格数据导出实例


Posted in Javascript onNovember 21, 2013

首先,是一段javascript脚本:

/** 
 *  
 *  
 * @param table_id 表格的id 
 * @param container_id 容器的id 
 * @param form_id 提交表单的id 
 * @param title 文件名 
 * @param rownumbers 
 */  
function getXlsFromTbl(table_id, container_id ,form_id, title, rownumbers) {  
    try {  
        var content = "";    
        if (table_id != null && table_id != "" && table_id != "null") {  
        <SPAN style="WHITE-SPACE: pre"> </SPAN>content = getTblData($('#' + table_id), $('#' + container_id), rownumbers);  
        }  
        if (content == "") {  
            alert("表格不存在");  
            return;  
        }  
        var fileName = getExcelFileName(title);  
        doFileExport($('#' + form_id), fileName, content);  
    }  
    catch (e) {  
        alert("导出异常:" + e.name + "->" + e.description + "!");  
    }  
}  
function getTblData(tableobj, containerobj, rownumbers) {  
  
    var outStr = "";  
    if (tableobj != null) {  
        var rowdata = tableobj.getRowData();  
        var Lenr = 1;  
  
        for (i = 0; i < Lenr; i++) {  
            //var Lenc = curTbl.rows(i).cells.length;   
            var th;  
            if (rownumbers == false) {  
                th = containerobj.find('TH:not(:first-child)');  
            }  
            else {  
                th = containerobj.find('TH');  
            }  
            th.each(function(index, element) {  
                var j = index + 1;  
                var content = $(element).text();  
                content = content.replace(/(^\s*)|(\s*$)/g, "");//去掉空格   
                outStr += content + ",";  
            });  
            outStr += "+nl+";  
        }  
        var tmp = "";  
        for (i = 0; i < rowdata.length; i++) {  
            var row = eval(rowdata[i]);  
            for (each in row) {  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>var temp = $(row[each]).text();  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>if($(row[each]).text() == null || $(row[each]).text() == ""){  
            <SPAN style="WHITE-SPACE: pre">       </SPAN>if(row[each].charAt(0) != '<')  
            <SPAN style="WHITE-SPACE: pre">           </SPAN>outStr += row[each] + ",";  
            <SPAN style="WHITE-SPACE: pre">       </SPAN>  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>}  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>else  
            <SPAN style="WHITE-SPACE: pre">       </SPAN>outStr += $(row[each]).text() + ",";  
            }  
            outStr += "+nl+";  
        }  
    }  
    else {  
        outStr = null;  
        alert(inTbl + " null!");  
    }  
    return outStr;  
}  
function getExcelFileName(title) {  
    var d = new Date();  
    var curYear = d.getYear();  
    var curMonth = "" + (d.getMonth() + 1);  
    var curDate = "" + d.getDate();  
    var curHour = "" + d.getHours();  
    var curMinute = "" + d.getMinutes();  
    var curSecond = "" + d.getSeconds();  
    if (curMonth.length == 1) {  
        curMonth = "0" + curMonth;  
    }  
    if (curDate.length == 1) {  
        curDate = "0" + curDate;  
    }  
    if (curHour.length == 1) {  
        curHour = "0" + curHour;  
    }  
    if (curMinute.length == 1) {  
        curMinute = "0" + curMinute;  
    }  
    if (curSecond.length == 1) {  
        curSecond = "0" + curSecond;  
    }  
    var fileName = title + "_" + curYear + curMonth + curDate + "_"  
            + curHour + curMinute + curSecond + ".csv";  
  
    return fileName;  
}  
function doFileExport(formobj, filename, content) {  
<SPAN style="WHITE-SPACE: pre"> </SPAN>formobj.html("<input id='filename' name='filename' type='text' style='display: none'><input id='content' name='content' type='text' style='display: none'>");  
    $("#filename").val(filename);  
    $("#content").val(content);  
    formobj.submit();  
}  

接着是页面调用的javascript:

<form id="download_form" method="post"  target="_blank" action="downLoadTableDataAction"> 
<div id="table_container">  
<SPAN style="WHITE-SPACE: pre"> </SPAN><table id="keyword_detail"></table>  
<SPAN style="WHITE-SPACE: pre"> </SPAN><div id="footer"></div>  
</div> 
//下载   
$('#download_file').click(function() {  
    getXlsFromTbl('keyword_detail', 'table_container' ,'download_form', '关键词详细数据', true)  
}); 
Javascript 相关文章推荐
javascript 动态添加事件代码
Nov 30 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
js获取height和width的方法说明
Jan 06 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
简单实现js间歇或无缝滚动效果
Jun 29 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
Apr 26 Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
js实现点击选项置顶动画效果
Aug 25 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 #Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
Nov 21 #Javascript
JQuery的ready函数与JS的onload的区别详解
Nov 21 #Javascript
js 实现菜单上下显示附效果图
Nov 21 #Javascript
javascript 数组排序函数sort和reverse使用介绍
Nov 21 #Javascript
js拖动div 当鼠标移动时整个div也相应的移动
Nov 21 #Javascript
js获取对象为null的解决方法
Nov 21 #Javascript
You might like
php下连接mssql2005的代码
2011/01/17 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
PHP7匿名类用法分析
2016/09/26 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
如何在Python中编写并发程序
2016/02/27 Python
python连接数据库的方法
2017/10/19 Python
Python装饰器简单用法实例小结
2018/12/03 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
python实现FTP循环上传文件
2020/03/20 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
高中军训感想300字
2014/03/04 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
旅游安全协议书
2014/04/21 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
老龙头导游词
2015/02/11 职场文书
通知范文怎么写
2015/04/16 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android