POI 公式评估器 IFERROR [英] POI Formula Evaluater IFERROR

查看:35
本文介绍了POI 公式评估器 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆