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 相关文章推荐
超简单的jquery的AJAX用法
May 10 Javascript
javascript getElementsByClassName实现代码
Oct 11 Javascript
Javascript计算时间差的函数分享
Jul 04 Javascript
js实现单一html页面两套css切换代码
Apr 11 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
May 31 Javascript
Bootstrap导航条鼠标悬停下拉菜单
Jan 04 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
vue表单自定义校验规则介绍
Aug 28 Javascript
详解vue-cli3多页应用改造
Jun 04 Javascript
vue实现分页栏效果
Jun 28 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
十大“创意”战术!
2020/03/04 星际争霸
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
php中如何执行linux命令详解
2018/11/06 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
python复制文件代码实现
2013/12/23 Python
Python全局变量操作详解
2015/04/14 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
django中间键重定向实例方法
2019/11/10 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Keras自定义IOU方式
2020/06/10 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
java程序员面试交流
2012/11/29 面试题
服务承诺书范文
2014/05/19 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
Python中for后接else的语法使用
2021/05/18 Python
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python