【问题标题】:suggest npm packages for Array to excel in Nodejs建议 Array 的 npm 包在 Nodejs 中表现出色
【发布时间】:2022-06-26 21:59:02
【问题描述】:

全部,

我有两个简单的数组,如下所示,想将数据转储到 Nodejs 中的 excel 中。请推荐一个好的 npm 包。

var Headers = ['ChangeId', 'ChangeDescription', 'ChangeDate', 'Enhancement/Fix', 'ExcutorTeam'];
var Data = ['INC1234', 'Multiple Cert cleanup', '04/07/2022', 'Enhancement', 'IlevelSupport'];

【问题讨论】:

  • 我们使用了node-xlsx 库。 npmjs.com/package/node-xlsx
  • “将数据转储到 excel 中”是指简单的 CSV 格式还是更复杂的格式?如果它只是 CSV,只需使用 excel 可以处理的分隔符加入数组,例如 , ;

标签: node.js node-modules


【解决方案1】:

您可以使用xlsx npm package 并执行类似的操作

这是一个可行的快速示例,可以改进,但至少可以为您提供一个起点

const xlsx = require('xlsx');

let Headers = ['ChangeId', 'ChangeDescription', 'ChangeDate', 'Enhancement/Fix', 'ExcutorTeam'];
let Data = ['INC1234', 'Multiple Cert cleanup', '04/07/2022', 'Enhancement', 'IlevelSupport'];

let workbook = xlsx.utils.book_new();
let worksheet = xlsx.utils.aoa_to_sheet([]);

xlsx.utils.book_append_sheet(workbook, worksheet);

xlsx.utils.sheet_add_aoa(worksheet, [Headers], { origin: 'A1' });
xlsx.utils.sheet_add_aoa(worksheet, [Data], { origin: 'A2' });


xlsx.writeFile(workbook, "Test.xlsx");

【讨论】:

    【解决方案2】:

    CSV 格式只是带有换行符的逗号分隔字符串。考虑到这一点,我们想要创建一个具有以下格式的字符串:

    ChangeId,ChangeDescription,ChangeDate,Enhancement/Fix,ExcutorTeam
    INC1234,Multiple Cert cleanup,04/07/2022,Enhancement,IlevelSupport
    

    我们可以在 Headers.length 大小的块中迭代数据:

    const numColumns = Headers.length;
    
    let file = `${Headers.join(",")}\n`;
    for (let i = 0; i < Data.length; i += numColumns) {
      file += `${Data.slice(i, i + numColumns).join(",")}\n`;
    }
    
    fs.writeFileSync("file.csv", file);
    

    希望这能让你朝着正确的方向开始。

    【讨论】:

    • @Shivam 有效。但是,我有一个后续问题,如果我们有来自循环的多个数据数组,我们如何处理原始值。
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 2020-01-28
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多