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与asp.net(c#)互相调用方法
Dec 13 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
简单实现jquery焦点图
Dec 12 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
Nov 25 Javascript
使用express来代理服务的方法
Jun 21 Javascript
利用js实现简易红绿灯
Oct 15 Javascript
Vue使用v-viewer实现图片预览
Oct 21 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
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
模拟flock实现文件锁定
2007/02/14 PHP
请php正则走开
2008/03/15 PHP
mysql数据库差异比较的PHP代码
2012/02/05 PHP
php数组去重实例及分析
2013/11/26 PHP
php 启动报错如何解决
2014/01/17 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
js密码强度检测
2016/01/07 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
下载糗事百科的内容_python版
2008/12/07 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
Python多项式回归的实现方法
2019/03/11 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
法国体育用品商店:GO Sport
2019/10/23 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
会计个人实习计划书
2014/08/15 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书