Я применяю формулу IRR в книге, используя apache poi, и могу видеть значение в таблице Excel.Но я получаю значение как #NUM!когда я пытался получить значение с помощью FormulaEvaluator.Пример
Cell cell = contentRow.createCell(3);
cell.setCellFormula(irrFormula + "*12");
FormulaEvaluator evaluator = sheet.getWorkbook().getCreationHelper().createFormulaEvaluator();
CellValue cellValue = evaluator.evaluate(cell);
if (Constants.NUM_ERROR.equals(cellValue.formatAsString().trim())) {
calculateTotal.setIrrTotal(Constants.IS_NAN);
}else {
double irrValue = cellValue.getNumberValue();
}
Также я попробовал следующий подход, чтобы получить значение, но оно не извлекает значение.Пожалуйста, предоставьте ваше предложение
for(Cell cell : row) {
if(cell.getCellType() == Cell.CELL_TYPE_FORMULA) {
System.out.println("Formula is " + cell.getCellFormula());
switch(cell.getCachedFormulaResultType()) {
case Cell.CELL_TYPE_NUMERIC:
System.out.println("Last evaluated as: " + cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
System.out.println("Last evaluated as \"" + cell.getRichStringCellValue() + "\"");
break;
}
}
}
cell.getRawValue();