我有一个包含随机列的excel(xlsx)文件。其中一些列的公式映射到某些单元格的总和;例如:
=J8+F9-H9
在我的情况下,我有以下三列:
F: number
H: number
J: =sum of previous row's F and H cell's values.
我的目标是获取外部数据并将其逐个单元存储在此工作簿中。为此,我使用节点模块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&#39;即包含公式的;这些细胞正在崩溃,没有任何共谋:
(快照)
导致此错误的我遗失或做错了什么?
答案 0 :(得分:0)
经过多次试验和错误后,我转移到了Apache POI,因此使用Java构建了脚本。
我在我的项目中下载并包含以下JAR:
它操纵行/列并保持公式不变。打开修改后的excel文件后,您只需刷新(在Windows上:ctrl + alt + f9),它就会重新计算。