jqgrid 表格数据导出实例
首先,是一段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") {
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) {
var temp = $(row[each]).text();
if($(row[each]).text() == null || $(row[each]).text() == ""){
if(row[each].charAt(0) != '
outStr += row[each] + ",";
}
else
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) {
formobj.html("");
$("#filename").val(filename);
$("#content").val(content);
formobj.submit();
}
接着是页面调用的javascript:
//下载
$('#download_file').click(function() {
getXlsFromTbl('keyword_detail', 'table_container' ,'download_form', '关键词详细数据', true)
});相关阅读:
使用strace命令定位和诊断故障的实例分享
浅析Javascript ES6新增值比较函数Object.is
详解JavaScript中的forEach()方法的使用
解析Java中的队列和用LinkedList集合模拟队列的方法
jQuery html()方法使用不了无法显示内容的问题
PHP中使用正则表达式提取中文实现笔记
[视频]win10 微软小娜解锁新姿势:超贴心的天气预报
Jquery实现动态切换图片的方法
jQuery基础知识点总结(必看)
Javascript实现网络监测的方法
如何利用AngularJS打造一款简单Web应用
win10系统安装Autocad2011打开闪退的原因及解决办法 cad2011打开闪退问题
Win10正式版怎么开启Cortana语音识别及搜索功能?
javascript实现跨域的方法汇总