Получить вычисленное значение ячейки таблицы 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

Вот возможный код подключения.

Другие вопросы по тегам