有时候用table2excel导出excel的时候,希望不导出某一些列,除了可以用指定不导出类名之外,还可以这样
function ExportExcel(DivName, fileName, cols) {
$("" + DivName).table2excel({
exclude: ".noExl", //过滤位置的 css 类名
filename: "" + fileName + ".xls", //文件名称
name: "Excel Document Name.xls",
columns: cols,//指定不导出列 实例:columns: "0,1,2,3",下标从0开始,代表不导出第一列--第四列
exclude_img: true,
exclude_links: true,
exclude_inputs: true
});
}
table2excel.js 下载地址:
网址:https://pan.baidu.com/s/1mjNnZWc 密码:jr5l
/*table2excel.js */红色地方代表对原js修改的地方
/*
* jQuery table2excel - v1.1.1
* jQuery plugin to export an .xls file in browser from an HTML table
* https://github.com/rainabba/jquery-table2excel
*
* Made by rainabba
* Under MIT License
*/
!function (a, b, c, d)
{
function e(b, c)
{
this.element = b, this.settings = a.extend({}, k, c), this._defaults = k, this._name = j, this.init()
}
function f(a)
{
return a.filename ? a.filename : "table2excel"
}
function g(a)
{
var b = /(\s+alt\s*=\s*"([^"]*)"|\s+alt\s*=\s*'([^']*)')/i; return a.replace(/<img[^>]*>/gi, function (a) { var c = b.exec(a); return null !== c && c.length >= 2 ? c[2] : "" })
}
function h(a)
{
return a.replace(/<a[^>]*>|<\/a>/gi, "")
}
function i(a) {
var b = /(\s+value\s*=\s*"([^"]*)"|\s+value\s*=\s*'([^']*)')/i; return a.replace(/<input[^>]*>|<\/input>/gi, function (a) { var c = b.exec(a); return null !== c && c.length >= 2 ? c[2] : "" })
}
var j = "table2excel",
k = {
exclude: ".noExl", name: "Table2Excel", filename: "table2excel", fileext: ".xls", exclude_img: !0, exclude_links: !0, exclude_inputs: !0
, columns: ""
};
e.prototype =
{
init: function () {
var b = this;
b.template = {
head: '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"><head>\x3c!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>',
sheet: { head: "<x:ExcelWorksheet><x:Name>", tail: "</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>" }, mid: "</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--\x3e</head><body>",
table: { head: "<table>", tail: "</table>" }, foot: "</body></html>"
},
b.tableRows = [],
a(b.element).each(function (c, d)
{
var obj = (b.settings.columns+"").split(',');
console.log(obj);
var e = ""; a(d).find("tr").not(b.settings.exclude).each(
function (c, d)
{
var count = 0;
e += "<tr>",
a(d).find("td,th").not(b.settings.exclude).each(
function (c, d)
{
var ishave = false;
for (var i = 0; i < obj.length; i++) {
if (obj[i] === (count+""))
{
ishave = true;
}
}
if (!ishave)
{
var f = { rows: a(this).attr("rowspan"), cols: a(this).attr("colspan"), flag: a(d).find(b.settings.exclude) }; f.flag.length > 0 ? e += "<td> </td>" : f.rows & f.cols ? e += "<td>" + a(d).html() + "</td>" : (e += "<td", f.rows > 0 && (e += " rowspan='" + f.rows + "' "), f.cols > 0 && (e += " colspan='" + f.cols + "' "), e += "/>" + a(d).html() + "</td>")
}
count++;
}),
e += "</tr>"
//console.log(e)
}),
b.settings.exclude_img && (e = g(e)),
b.settings.exclude_links && (e = h(e)),
b.settings.exclude_inputs && (e = i(e)), b.tableRows.push(e)
}), b.tableToExcel(b.tableRows, b.settings.name, b.settings.sheetName)
},
tableToExcel: function (d, e, g)
{
var h, i, j, k = this, l = "";
console.log(h);
if (k.format = function (a, b)
{
return a.replace(/{(\w+)}/g, function (a, c) { return b[c] })
},
g = void 0 === g ? "Sheet" : g,
k.ctx = {
worksheet: e || "Worksheet", table: d, sheetName: g
},
l = k.template.head,
a.isArray(d)) for (h in d) l += k.template.sheet.head + g + h + k.template.sheet.tail;
if (l += k.template.mid, a.isArray(d)) for (h in d) l += k.template.table.head + "{table" + h + "}" + k.template.table.tail;
l += k.template.foot; for (h in d) k.ctx["table" + h] = d[h]; if (delete k.ctx.table, !c.documentMode)
{
var m = new Blob([k.format(l, k.ctx)],
{ type: "application/vnd.ms-excel" });
b.URL = b.URL || b.webkitURL, i = b.URL.createObjectURL(m), j = c.createElement("a"), j.download = f(k.settings), j.href = i, c.body.appendChild(j), j.click(),
c.body.removeChild(j)
} else if ("undefined" != typeof Blob)
{
l = k.format(l, k.ctx), l = [l];
var n = new Blob(l, { type: "text/html" });
b.navigator.msSaveBlob(n, f(k.settings))
} else txtArea1.document.open("text/html", "replace"),
txtArea1.document.write(k.format(l, k.ctx)),
txtArea1.document.close(),
txtArea1.focus(),
sa = txtArea1.document.execCommand("SaveAs", !0, f(k.settings));
return !0
}
},
a.fn[j] = function (b)
{
var c = this;
return c.each(function () { a.data(c, "plugin_" + j) || a.data(c, "plugin_" + j, new e(this, b)) }), c
}
}(jQuery, window, document);