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(/<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);

        
Vue Xlsx是一个基于Vue.js的库,用于实现从Web表格导出数据到Excel文件。使用这个库时,你可以将表格中的数据导出Excel,并且可以选择性地包含或排除某些,同时保留表格的样式。 实现导出带有样式的Excel文件并自定义排除部分,你可以按照以下步骤操作: 1. 安装Vue Xlsx库:在你的项目中通过npm或yarn来安装Vue Xlsx库。 2. 创建导出功能:在你的Vue组件中,编写一个方法用于处理导出逻辑。你可以在这个方法中指定哪些需要被导出,哪些不需要。 3. 处理样式:如果需要保留样式,你可以在导出之前对表格进行样式处理,确保这些样式能够在Excel中被正确应用。 4. 调用导出函数:最后,通过绑定事件(如点击按钮)调用上述方法,从而实现导出功能。 示例代码大致如下: ```javascript <template> <button @click="exportExcel">导出Excel</button> </template> <script> import { saveAs } from 'file-saver'; import XLSX from 'xlsx'; export default { methods: { exportExcel() { const ws_name = "SheetJS"; const wb = XLSX.utils.book_new(), ws = XLSX.utils.aoa_to_sheet([]); // 假设tableData是你表格中的数据,你可以通过遍历这些数据来填充ws this.tableData.forEach((row, index) => { // 排除某些,例如index为2的 if (index !== 2) { ws[row[0]] = row; } }); // 添加样式 XLSX.utils.sheet_add_aoa(ws, this.tableData, {origin: [-1, 0]}); XLSX.utils.book_append_sheet(wb, ws, ws_name); XLSX.writeFile(wb, "filename.xlsx"); } } } </script> ``` 注意:上述代码只是一个简化的例子,实际应用中你需要根据实际的数据结构和样式需求进行调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值