Как выполнить формулу Excel, используя Java Apache POI - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь выполнить некоторую формулу, используя API Java Apache Poi, однако в качестве первого шага я могу создать новый лист и заполнить необходимые данные.Теперь, на втором шаге я хочу выполнить формулу для заполненных данных, формула может помещаться в ячейку, но результат не отображается при открытии листа Excel,

Пожалуйста, найдите встроенное изображение для лучшего понимания, здесь G4отображается как # NAME? , но каково действительное значение ячейки = G3 * SQRT (5).

enter image description here

Ожидается: при использовании Java, если мы создаем формулу Excel и выполняем ее, то при открытии листа Excel должен отображаться результат вычисления формулы без какого-либо ручного вмешательства

Фактически: после открытия Excel данные ячейки отображаются как #NAME?как будто формула не распознается Excel, однако, если я щелкаю соответствующую ячейку для редактирования, то ожидаемый результат отображает

Код:

appendCellValue(sheet, 3, colIndex+3, true, "G3*SQRT(5)", null);
...
...
...
appendCellValue(XSSFSheet sheet, int rowIndex, int colIndex,boolean isFormula, String value, CellStyle cellStyle) {
    Row row = sheet.getRow(rowIndex);
    Cell cell = row.createCell(colIndex);
    if(isFormula) {
        cell.setCellFormula(value);
    } else {
        cell.setCellValue(value);
    }
    if(cellStyle != null) {
        cell.setCellStyle(cellStyle);
    }
}

1 Ответ

0 голосов
/ 18 апреля 2019

Чтобы написать формулу, вы должны сначала установить тип ячейки как ФОРМУЛА, иначе она будет просто интерпретироваться как текст. Вот пример того, как это сделать:

  // Create MAX formula
  cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
  cell.setCellFormula("MAX(C2,C3)");

Подробнее см. в этом руководстве .

...