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 相关文章推荐
TFDN图片播放器 不错自动播放
Oct 03 Javascript
子窗口、父窗口和Silverlight之间的相互调用
Aug 16 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
Oct 17 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
Dec 02 Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 Javascript
webpack入门+react环境配置
Feb 08 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
vue回到顶部监听滚动事件详解
Aug 02 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 生成随机验证码图片代码
2010/02/08 PHP
php获取linux命令结果的实例
2017/03/13 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
python3 线性回归验证方法
2019/07/09 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python之变量类型和if判断方式
2020/05/05 Python
python excel多行合并的方法
2020/12/09 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
应届生如何写自荐信
2014/01/05 职场文书
大学校庆邀请函
2014/01/11 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
给朋友的赠语
2015/06/23 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL