【问题标题】:commit error on exceljs在exceljs上提交错误
【发布时间】:2019-05-20 15:15:59
【问题描述】:

我尝试创建一个 Excel,但收到提交错误。我的代码有什么问题。如果我删除 sheet.commit()workbook.commit() 程序可以正常工作。

const Excel = require('exceljs');
const fs = require('fs');

const workbook = new Excel.Workbook();
const sheet = workbook.addWorksheet("MySheet");
const writeToExcel = fs.createWriteStream("./test/testfile.xlsx");

sheet.columns = [
    { header: 'Id', key: 'id', width: 10 },
    { header: 'Name', key: 'name', width: 40 },
    { header: 'DOB', key: 'dob', width: 10, outlineLevel: 1}
];


let names = ['Windows', 'Mac Os', 'Ubuntu', 'B OS'];
let i = 2;

names.forEach( (singleName) => {
    let row = sheet.getRow(i);
    row.values = {
        id: i-1,
        name: singleName,
        dob: new Date()
    };
    row.commit();
    i++;
});

sheet.commit();
workbook.commit();

workbook.xlsx.write(writeToExcel)
 .then( (response) => {
    console.log("Excel file is created with data.");
 })
 .catch( (error) => {
    console.log("Some problem in creating an excel file. Please check for errors...");
 });

以下是错误。

λ node excel.js
c:\Personal\node_projects\node-js-playlist-master\excel.js:29
sheet.commit();
      ^

TypeError: sheet.commit is not a function
    at Object.<anonymous> (c:\Personal\node_projects\node-js-playlist-master\excel.js:29:7)
    at Module._compile (module.js:624:30)

如果我删除工作表提交,则会在工作簿提交行中引发错误。任何帮助在这里都有用..

【问题讨论】:

  • 任何帮助都是显而易见的。
  • 请提供任何帮助....

标签: javascript node.js exceljs


【解决方案1】:

不知道你是否找到了答案。

唯一具有提交功能的对象是行和 XLSX 流。

你已经提交了每一行

  row.commit();

工作表本身没有提交功能,行有。您可能会在示例中找到类似的内容:

  sheet.addRow([...]).commit();

但是,这不是在工作表上提交,而是在行上提交。

关于工作簿提交。您可能已经看到this example 的提交,但同样是对 XLSX 流的提交,而不是工作簿本身。

【讨论】:

  • documentation 另有建议As each worksheet is completed, it must also be committed: // Finished adding data. Commit the worksheet worksheet.commit();
【解决方案2】:

您不需要 commit() 调用。

只需删除以下行。它的工作原理

sheet.commit();
workbook.commit();
row.commit();

commit() 函数只有流式写入器需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2021-12-03
    • 2016-08-23
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多