table2excel指定不导出某些列

有时候用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(/]*>/gi, function (a) { var c = b.exec(a); return null !== c && c.length >= 2 ? c[2] : "" })
    }
    function h(a)
    {
        return a.replace(/]*>|<\/a>/gi, "")
    }
    function i(a) {
        var b = /(\s+value\s*=\s*"([^"]*)"|\s+value\s*=\s*'([^']*)')/i; return a.replace(/]*>|<\/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: '\x3c!--[if gte mso 9]>',
                    sheet: { head: "", tail: "" }, mid: "
",
                    table: { head: "

", tail: "
" }, foot: ""
                },
               
                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 += "",
                            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 += " " : f.rows & f.cols ? e += "" + a(d).html() + "" : (e += " 0 && (e += " rowspan='" + f.rows + "' "), f.cols > 0 && (e += " colspan='" + f.cols + "' "), e += "/>" + a(d).html() + "")
                                    }
                                    count++;
                                }),

                            e += ""
                            //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);

        

你可能感兴趣的:(JavaScript)