gpt4 book ai didi

node.js - Node -exceljs : writing to file breaks fomulas in the file

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:20 26 4
gpt4 key购买 nike

我有一个包含随机列的 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”代替公式)
  • 使用此注入(inject)机制不会自动完成重新计算

(快照)

snapshot

with formula

no formula

我遗漏了什么或做错了什么导致了此错误?

最佳答案

经过几次尝试和错误,我转移到 Apache POI因此使用 Java 构建了脚本。

我下载了以下 JAR 并将其包含在我的项目中:

jars-used

它操作行/列并保持公式完整。打开修改后的 Excel 文件后,您只需刷新(在 Windows 上:ctrl + alt + f9),它将重新计算。

关于node.js - Node -exceljs : writing to file breaks fomulas in the file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42967531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com