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 子窗体父窗体相互传值方法
May 31 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
jQuery异步提交表单的两种方式
Sep 13 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
Oct 28 Javascript
JavaScript运行原理分析
Feb 09 Javascript
Angular中sweetalert弹框的基本使用教程
Jul 22 Javascript
JS尾递归的实现方法及代码优化技巧
Jan 19 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
React传值 组件传值 之间的关系详解
Aug 26 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分页函数
2006/10/09 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
JavaScript事件列表解说
2006/12/22 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
python k-近邻算法实例分享
2014/06/11 Python
Python抽象类的新写法
2015/06/18 Python
Django框架中的对象列表视图使用示例
2015/07/21 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
2015年干部教育培训工作总结
2015/05/15 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
CAD实训总结范文
2015/08/03 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android