POI 公式评估器 IFERROR [英] POI Formula Evaluater IFERROR
问题描述
我正在使用 POI 3.8 读取 excel 我正在使用 POI 的用户模型 api,它能够同时读取 HSSF 和 XSSF,但在评估公式时存在一些问题 POI 3.8 不支持 Excle 的 IFERROR 功能替代,我不想将公式转换为 ISERROR,因为旧版本的 excel 不支持它.
I am using POI 3.8 to read the excel i am using User model api of POI which is capable of reading HSSF and XSSF both but there is some problem in evaluating the fomula POI 3.8 doesnt support the IFERROR function of Excle is there any alternate and i dont want to convert the formula to ISERROR caz it not supported by older version of excel.
我知道 POI 3.8 不支持 IFERROR 但我能做些什么来完成它 -- 提前致谢
I know POI 3.8 doesnt support IFERROR but what can i do to make it done -- Thanks in advance
os this 以下是例外线程main"org.apache.poi.ss.formula.eval.NotImplementedException 中的异常:评估单元格 Sheet1!F1 时出错在 org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:356)在 org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:297)在 org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:229)在 org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateFormulaCellValue(XSSFFormulaEvaluator.java:264)在 org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluate(XSSFFormulaEvaluator.java:117)在 TestFormula.cellValue(TestFormula.java:48)在 TestFormula.loadCell(TestFormula.java:37)在 TestFormula.loadRows(TestFormula.java:29)在 TestFormula.testRun(TestFormula.java:22)在 FISValidator.main(FISValidator.java:27)引起:org.apache.poi.ss.formula.eval.NotImplementedException:IFERROR在 org.apache.poi.ss.formula.atp.AnalysisToolPak$NotImplemented.evaluate(AnalysisToolPak.java:40)在 org.apache.poi.ss.formula.UserDefinedFunction.evaluate(UserDefinedFunction.java:64)在 org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:129)在 org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:491)在 org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:287)
os this Following is the Exception Exception in thread "main" org.apache.poi.ss.formula.eval.NotImplementedException: Error evaluating cell Sheet1!F1 at org.apache.poi.ss.formula.WorkbookEvaluator.addExceptionInfo(WorkbookEvaluator.java:356) at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:297) at org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:229) at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateFormulaCellValue(XSSFFormulaEvaluator.java:264) at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluate(XSSFFormulaEvaluator.java:117) at TestFormula.cellValue(TestFormula.java:48) at TestFormula.loadCell(TestFormula.java:37) at TestFormula.loadRows(TestFormula.java:29) at TestFormula.testRun(TestFormula.java:22) at FISValidator.main(FISValidator.java:27) Caused by: org.apache.poi.ss.formula.eval.NotImplementedException: IFERROR at org.apache.poi.ss.formula.atp.AnalysisToolPak$NotImplemented.evaluate(AnalysisToolPak.java:40) at org.apache.poi.ss.formula.UserDefinedFunction.evaluate(UserDefinedFunction.java:64) at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:129) at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:491) at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:287)
推荐答案
IFERROR 现已在 poi-3.10 中实现.因此,您可以升级到该版本,而无需进行黑客攻击.
IFERROR has now been implemented in poi-3.10. So you can upgrade to that version without the need for hacks.
这篇关于POI 公式评估器 IFERROR的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!