js table转str后台下载
//根据显示的table下载(非固定首行首列)
var tableDl2 = function (table_id) {
var reg = new RegExp(',', "g")
//表格数据下载
var columnNum;
var body = [];
var exXAxis = $('#' + table_id).children('tbody').children();
columnNum = exXAxis.eq(0).find('td').length;
for (var i = 0, l = exXAxis.length; i < l; i++) {
//以第二行加1的表头列数为准
for (var j = 0, k = 0; j < columnNum;) {
if (j == 0 && typeof (body[i]) == 'undefined')
body[i] = [];
var value;
//解决跨列问题
var colsSpan = exXAxis.eq(i).find('td').eq(k)[0].colSpan;
for (var c = colsSpan; c > 0; c--) {
value = exXAxis.eq(i).find('td').eq(k)[0].innerText.replace(reg, '');
if (typeof (body[i][j + c - 1]) == 'undefined')
body[i][j + c - 1] = value;
else if (c == 1)
k--;
//解决跨行串列问题
var rspan = exXAxis.eq(i).find('td').eq(k)[0].rowSpan;
for (var r = rspan; r > 1; r--) {
if (j == 0) body[i + r - 1] = [];
body[i + r - 1][j] = value;
}
if (c == 1) {
k++;
j = j + colsSpan;
}
}
}
}
//表头下载
var title = [];
var exXAxis = $('#' + table_id).children('thead').children();
for (var i = 0, l = exXAxis.length; i < l; i++) {
//以第二行加1的表头列数为准
for (var j = 0, k = 0; j < columnNum;) {
if (j == 0 && typeof (title[i]) == 'undefined')
title[i] = [];
var value;
//解决跨列问题
var colsSpan = exXAxis.eq(i).find('th').eq(k)[0].colSpan;
for (var c = colsSpan; c > 0; c--) {
value = exXAxis.eq(i).find('th').eq(k)[0].innerText.replace(reg, '');
if (typeof (title[i][j + c - 1]) == 'undefined')
title[i][j + c - 1] = value;
else if (c == 1)
k--;
//解决跨行串列问题
var rspan = exXAxis.eq(i).find('th').eq(k)[0].rowSpan;
for (var r = rspan; r > 1; r--) {
if (j == 0) title[i + r - 1] = [];
title[i + r - 1][j] = value;
}
if (c == 1) {
k++;
j = j + colsSpan;
}
}
}
}
// strresult = result;
var str = JSON.stringify(title.concat(body));
// var str = JSON.stringify(title);
var titledl = $('#' + table_id)[0].title;
DownLoadFile({
url: "/sys_manage/report/Download/Download2",
data: { "title": titledl, "data": (str) }//要发送的数据
});
}
var DownLoadFile = function (options) {
var config = $.extend(true, { method: 'post' }, options);
var $iframe = $('<iframe id="down-file-iframe" />');
var $form = $('<form target="down-file-iframe" method="' + config.method + '" enctype="multipart/form-data"/>');
$form.attr('action', config.url);
for (var key in config.data) {
// if (key != 'data')
$form.append('<input type="hidden" name="' + key + '" value="' + escape(config.data[key])/*.replace('"[', '[').replace(']"',']').replace(reg,'\'')*/ + '" />');
// else
// $form.append("file", fso);// 文件对象
}
$iframe.append($form);
$(document.body).append($iframe);
$form[0].submit();
$iframe.remove();
}
浙公网安备 33010602011771号