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 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
javascript arguments 传递给函数的隐含参数
Aug 21 Javascript
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
Feb 03 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
jQuery中click事件的定义和用法
Dec 20 Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
Mar 11 Javascript
JS匿名函数实例分析
Nov 26 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
Jun 04 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JQuery live函数
2010/12/24 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python去除扩展名的实例讲解
2018/04/23 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
python实现门限回归方式
2020/02/29 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
超市促销实习自我鉴定
2013/09/23 职场文书
运动会广播稿20字
2014/02/18 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
安全生产大检查方案
2014/05/07 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
python获取对象信息的实例详解
2021/07/07 Python
Oracle表空间与权限的深入讲解
2021/11/17 Oracle
基于Python实现射击小游戏的制作
2022/04/06 Python