我正在尝试使用apache-poi在xlsx工作簿中评估公式单元格,如下所示:
FileInputStream file = new FileInputStream("files/records/RFQ.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(file);
Sheet structureBomSheet = workbook.getSheet("Structure BOM");
DataFormatter df = new DataFormatter();
FormulaEvaluator objFormulaEvaluator = new XSSFFormulaEvaluator(workbook);
Row row = structureBomSheet.getRow(2);
Cell cell = row.getCell(3);
logger.info(df.formatCellValue(valueCell));
objFormulaEvaluator.evaluate(valueCell);
String cellValue = df.formatCellValue(valueCell, objFormulaEvaluator);
logger.info(cellValue);
在上面的代码中,df.formatCellValue打印出单元格中的公式,并使用带有objForumlaEvaluator的formateCellValue()给出了以下错误:
org.apache.poi.ss.formula.eval.NotImplementedFunctionException: CONVERT
at org.apache.poi.ss.formula.atp.AnalysisToolPak$NotImplemented.evaluate(AnalysisToolPak.java:59)
at org.apache.poi.ss.formula.UserDefinedFunction.evaluate(UserDefinedFunction.java:61)
at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:129)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:514)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:278)
... 150 more
如何从单元格中获取从公式派生的字符串?