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 相关文章推荐
日期 时间js控件
May 07 Javascript
用JQuery调用Session的实现代码
Oct 29 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 Javascript
javascript实现手机震动API代码
Aug 05 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
原生JS获取元素集合的子元素宽度实例
Dec 14 Javascript
基本DOM节点操作
Jan 17 Javascript
Vue中使用vue-i18插件实现多语言切换功能
Apr 25 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
详解JavaScript数据类型和判断方法
Sep 04 Javascript
基于jQuery拖拽事件的封装
Nov 29 jQuery
基于vue的video播放器的实现示例
Feb 19 Vue.js
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下删除字符串中HTML标签的函数
2008/08/27 PHP
php错误日志简单配置方法
2016/07/11 PHP
php mysql 封装类实例代码
2016/09/18 PHP
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python简易版停车管理系统
2019/08/12 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
香港零食网购:上仓胃子
2020/06/08 全球购物
两年的个人工作自我评价
2014/01/10 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
环保公益广告语
2014/03/13 职场文书
《长征》教学反思
2014/04/27 职场文书
中学生思想品德评语
2014/12/31 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
考研经验交流会策划书
2015/11/02 职场文书
TS 类型收窄教程示例详解
2022/09/23 Javascript