Я использую poi версии 3.17. В моем коде java я хочу прочитать значение ячейки, которое имеет формулу, и я использую функцию evaluateInCell
, равную FormulaEvaluator
, для определения значения ячейки.
У меня есть шаблон excel в моем ресурсе, в котором ячейки имеют формулы, если я создаю из этого книгу и задаю какое-то значение, и пытаюсь прочитать ее обратно, FormulaEvaluator
разрешает ячейку и помещает фактическую значение, по этой формуле эти ячейки заменяются и обновляются с фактическим значением. ПОЧЕМУ ??
Я видел реализацию функции evaluateInCell
, которая намеренно устанавливает тип ячейки как setCellType(cell, cv);
public XSSFCell evaluateInCell(Cell cell) {
if (cell == null) {
return null;
} else {
XSSFCell result = (XSSFCell)cell;
if (cell.getCellType() == 2) {
CellValue cv = this.evaluateFormulaCellValue(cell);
setCellType(cell, cv);
setCellValue(cell, cv);
}
return result;
}
}
Почему библиотека делает это, и удаляет фактическую формулу из клетка.