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.extend()的实现方式详解及实例
Jun 29 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
Mar 27 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
DOM基础教程之事件类型
Jan 20 Javascript
js显示文本框提示文字的方法
May 07 Javascript
jquery中live()方法和bind()方法区别分析
Jun 23 Javascript
js简单的分页器插件代码实例
Sep 11 Javascript
createObjectURL方法实现本地图片预览
Sep 30 Javascript
jquery 时间戳转日期过程详解
Oct 12 jQuery
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
javascript中call,apply,bind的区别详解
Dec 11 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执行速度全攻略
2006/10/09 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
php中动态变量用法实例
2015/06/10 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
Vue中的$set的使用实例代码
2018/10/08 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
单位单身证明范本
2014/01/11 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
优秀学生事迹材料
2014/02/08 职场文书
学习方法演讲稿
2014/05/10 职场文书
学生检讨书怎么写
2015/05/07 职场文书
施工安全协议书
2016/03/22 职场文书
pytorch中的 .view()函数的用法介绍
2022/03/17 Python
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android