使用node.js修改现有Excel文件

jen*_*fad 16 node.js exceljs

有没有办法修改node.js中的现有excel文件?我查看了exceljs但它没有提供任何只修改现有数据的功能.好像它会写入新的流.

或者我错过了exceljs的一些东西?

提前致谢.

Cla*_*ung 27

exceljs允许您修改Excel电子表格.

以下是在现有电子表格中读取并将其写回不同文件的示例:

var Excel = require('exceljs');
var workbook = new Excel.Workbook();

workbook.xlsx.readFile('old.xlsx')
    .then(function() {
        var worksheet = workbook.getWorksheet(1);
        var row = worksheet.getRow(5);
        row.getCell(1).value = 5; // A5's value set to 5
        row.commit();
        return workbook.xlsx.writeFile('new.xlsx');
    })
Run Code Online (Sandbox Code Playgroud)

如果您正在使用Streams API exceljs,您也可以将流管道输入fs.createWriteStream以写入文件.

  • 当我创建工作簿时,文件已损坏。“我们发现‘new.xlsx’中的某些内容存在问题。” (3认同)
  • 谢谢 :).这就是我要找的东西. (2认同)
  • 当我编写excel时,它会丢失一些设置。是否可以在不读写的情况下更改现有文件 (2认同)

小智 5

谢谢大家的回答。在同一文件中,您可以通过以下代码更新行值,无需重命名或创建新文件。

    var Excel = require('exceljs');
    let filename = 'src/write.xlsx';
    let workbook = new Excel.Workbook();
    await workbook.xlsx.readFile(filename);
    let worksheet = workbook.getWorksheet("Sheet1");
    // header id name dob
    let row = worksheet.getRow(3);
    console.log(row);
    row.getCell(1).value = 2;
    row.getCell(2).value = 'test';
    row.getCell(3).value = '12/09/1991';
    row.commit();
    workbook.xlsx.writeFile('src/write.xlsx');
Run Code Online (Sandbox Code Playgroud)