ランダムな列を含む Excel (xlsx) ファイルがあります。これらの列の一部には、一部のセルの合計にマップされた数式があります。例えば:
=J8+F9-H9
私の場合、次の 3 つの列があります。
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' を持っています)
- この注入メカニズムを使用すると、再計算は自動的に行われません。
(スナップショット)
このエラーの原因となっているのは、何が欠けているか、間違っているのでしょうか?