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

时间:2016-10-05 09:06:31

标签: node.js exceljs

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

或者我在exceljs上错过了什么?

提前致谢。

4 个答案:

答案 0 :(得分:25)

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');
    })

如果您将Streams API与exceljs一起使用,您还可以将流传输到fs.createWriteStream以写入文件。

答案 1 :(得分:1)

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

    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');

答案 2 :(得分:0)

您可以修改excel,下面是示例。

var Excel = require('exceljs');
async function excelOp() {
    let workbook = new Excel.Workbook();
    workbook = await workbook.xlsx.readFile('question_39869739.xlsx'); // replace question_39869739.xls with your file
    let worksheet = workbook.getWorksheet('sheetname'); // replace sheetname with actual sheet name
    worksheet.getRow('rowNumber').getCell('cellNumber').value = 350; // replace rowNumber and cellNumber with the row and cell you want to modify
    workbook.xlsx.writeFile('question_50508131.xlsx');
}

excelOp();

查看ProvisioningState Class中所有可用的exceljs操作。

答案 3 :(得分:0)

With DueDate
    .Interior.ColorIndex = 0
    .Font.ColorIndex = myTable.tablestyle.FirstRowStripe.font.colorindex
end with

步骤-

  1. 修改文件。
  2. 将数据写入另一个文件。
  3. 删除上一个文件。
  4. 重命名新文件。