javascript - 如何在使用 js-xlsx 插件生成的 excel 中添加过滤器

标签 javascript excel js-xlsx

我想在使用 js-xlsx javascript 插件从数据数组创建的 excel 列上添加过滤器,但我没有找到任何方法来向表列添加过滤器。

如果有人知道如何在 excel 中向列添加过滤器,请帮助我

我已经编写了这段代码来创建工作表对象

function createSheet(data, opts) {
        console.log(data, opts);
        var ws = {};
        var range = {s: {c: 10000000, r: 10000000}, e: {c: 0, r: 0}};
        for (var R = 0; R != data.length; ++R) {
            for (var C = 0; C != data[R].length; ++C) {
                if (range.s.r > R) range.s.r = R;
                if (range.s.c > C) range.s.c = C;
                if (range.e.r < R) range.e.r = R;
                if (range.e.c < C) range.e.c = C;
                var cell = {v: data[R][C]};
                if (cell.v == null) continue;
                var cell_ref = XLSX.utils.encode_cell({c: C, r: R});

                console.log(cell_ref);
                if (typeof cell.v === 'number') cell.t = 'n';
                else if (typeof cell.v === 'boolean') cell.t = 'b';
                else if (cell.v instanceof Date) {
                    cell.t = 'n';
                    cell.z = XLSX.SSF._table[14];
                    cell.v = dateNum(cell.v);
                }
                else cell.t = 's';

                ws[cell_ref] = cell;
                console.log(cell);
            }
        }
        console.log(range.s.c);
        if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
        return ws;
    }

我在数组中的数据如下所示

[["Rank","Country","Population","% of world population","Date"],["1","India","1,273,140,000","17.6%","June 24, 2015"],["2","Pakistan","190,156,000","2.62%","June 24, 2015"],["3","Nigeria","183,523,000","2.53%","July 1, 2015"],["4","Bangladesh","126,880,000","2.19%","June 24, 2015"]]

最佳答案

您可以在 createSheet 函数中的 return 语句之前添加以下行。

ws['!autofilter']={ref:"A1:E1"};

您可以根据需要扩展这些范围。

关于javascript - 如何在使用 js-xlsx 插件生成的 excel 中添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37680884/

相关文章:

javascript - 如何改变HTML5中视频的播放速度?

JavaScript:以任何顺序执行链式方法

javascript - 未经许可的地理定位

excel - for 循环的第二次迭代中出现对象变量或 with block 变量未设置错误

excel - 按日期锁定 Excel 列

js-xlsx - 如何在 webpack 之后减小 xlsx 的大小

javascript - 导航栏没有在正确的地方折叠

sql - 连接到 SSAS 表格模型时,如何按日期而不是按字母顺序对日期列进行排序?

js-xlsx - SheetJS:不要在 json_to_sheet 中包含标题

javascript - 上传excel文件并消费数据