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 相关文章推荐
对YUI扩展的Gird组件 Part-2
Mar 10 Javascript
ExtJS的FieldSet的column列布局
Nov 20 Javascript
js判断字符是否是汉字的两种方法小结
Jan 03 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
详解JavaScript中的事件流和事件处理程序
May 20 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
Sep 25 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
基于better-scroll 实现歌词联动功能的代码
May 07 Javascript
JavaScript ES6 Class类实现原理详解
May 08 Javascript
js回到页面指定位置的三种方式
Dec 17 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
Python中optparse模块使用浅析
2015/01/01 Python
Python smallseg分词用法实例分析
2015/05/28 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
Python中字符串List按照长度排序
2019/07/01 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
python二维图制作的实例代码
2020/12/03 Python
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
纠风工作实施方案
2014/03/15 职场文书
学生手册评语
2014/05/05 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
2015年加油站工作总结
2015/05/13 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
Java界面编程实现界面跳转
2022/06/16 Java/Android