1

我正在使用 node.js 使用exceljs模块处理我的 excel 工作表。

我正在将值写入几个单元格,而其他单元格已经包含公式。我想触发这些公式并希望以编程方式将值存储在工作表中。

例如,我有以下工作表结构: 在此处输入图像描述

我在下面编写了代码以在单元格 A1 和 B1 中插入值。

var workbook = new Excel.Workbook();
workbook.xlsx.readFile(__base + 'test.xlsx')
  .then(function() {
    var worksheet = workbook.getWorksheet(2);
    var row = worksheet.getRow(1);
    row.getCell(1).value = 2; // A1's value set to 2
    row.getCell(2).value = 8; // B1's value set to 8
  };
  row.commit();
  workbook.xlsx.writeFile(__base + 'test.xlsx');                            
});

当我试图获取 c1 的值时,它会返回结果为 0 的公式。下面是获取值的代码。

workbook.xlsx.readFile(__base + 'test.xlsx')
    .then(function() {
    var worksheet = workbook.getWorksheet(2);
    var row = worksheet.getRow(1);
    console.log(row.getCell(1).value);
    console.log(row.getCell(2).value);
    console.log(row.getCell(3).value);
});

输出:

在此处输入图像描述

如何获取计算值或如何以编程方式在 excel 中触发计算并将其存储在单元格中?

单元格 C1 的输出结果在控制台中应为 10,即 A1+B1 (2+8)。

4

2 回答 2

4

hot-formula-parser可以解析公式...结合使用exceljs

这是可能的连接代码

于 2017-11-05T00:56:15.793 回答
2

exceljs允许您直接修改文件而不使用 Excel。
不会在文件级别进行任何计算,结果值将是您上次打开 Excel 时计算的最新值。

如果您打开 Excel,它将计算所有内容并且值将是正确的。

于 2017-05-26T14:13:24.503 回答