我有一个包含随机列的 excel (xlsx) 文件。其中一些列的公式映射到某些单元格的总和;例如:
=J8+F9-H9
就我而言,我有以下三列:
F: number
H: number
J: =sum of previous row's F and H cell's values.
我的目标是获取外部数据并将它们逐个单元格地存储在本工作簿中。为此,我正在使用 Node 模块exceljs。
到目前为止,这是我的代码,我现在正在对值进行编码(稍后我将从另一个文件中获取)。
var workbook = new Excel.Workbook();
var filename = 'Bank Synoptic Journal.xlsx'
workbook
.xlsx
.readFile(filename)
.then(function() {
var worksheet = workbook.getWorksheet('Bank Synoptic');
var row = null;
row = worksheet.getRow(8);
row.getCell('J').value = Math.random();
row.commit();
for(var i=9; i<=305;i++) { //row
row = worksheet.getRow(i);
row.getCell('F').value = Math.random();
row.getCell('H').value = Math.random();
row.commit();
}
})
.then(function() {
return workbook.xlsx.writeFile(filename + '_modified.xlsx');
})
.then(function() {
console.log('Done!');
});
它将输出打印到一个新的 excel 文件中。我面临的问题是单元格“J”,即包含公式的单元格;这些细胞没有一致性地破裂:
- 一些单元格保留公式并进行计算
- 其他人没有更多的公式或计算(有'0'而不是公式)
- 使用此注入机制不会自动完成重新计算
(快照)
我错过了什么或做错了什么会导致这个错误?