Получить вычисленное значение ячейки таблицы Excel в Node.js
Я использую node.js для обработки моих листов Excel с модулем exceljs.
Я пишу значения в несколько ячеек, а другие ячейки уже содержат формулы. Я хочу вызвать эти формулы и хочу сохранять значения в листе программно.
Например, у меня есть структура листа ниже:
Ниже приведен код для вставки значений в ячейки 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).
2 ответа
exceljs
позволяет изменять файл напрямую, без использования Excel.
На уровне файла не будет выполнено никаких вычислений, значение результата будет последним, вычисленным Excel в последний раз, когда вы открывали его.
Если вы откроете Excel, он все рассчитает и значение будет правильным.
синтаксический анализатор горячих формул может анализировать формулы... использовать в комбинации с exceljs
Вот возможный код подключения.