首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Apache poi在excel中的公式计算

使用Apache poi在excel中的公式计算
EN

Stack Overflow用户
提问于 2015-07-14 07:39:40
回答 2查看 3.9K关注 0票数 4

我正在尝试从Excel 2007工作表中阅读。读取excel工作表的问题是,它的所有单元格都具有公式类型中的值。

单元格的值类似于:

='C:*\*[***.xlsx]*'!G23**

当我尝试使用公式计算来读取它们时,它会给出以下错误:

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.RuntimeException: Could not resolve external workbook name '/**/**.xlsx'. Workbook environment has not been set up.
at org.apache.poi.ss.formula.OperationEvaluationContext.createExternSheetRefEvaluator(OperationEvaluationContext.java:109)
at org.apache.poi.ss.formula.OperationEvaluationContext.createExternSheetRefEvaluator(OperationEvaluationContext.java:84)
at org.apache.poi.ss.formula.OperationEvaluationContext.getRef3DEval(OperationEvaluationContext.java:309)
at org.apache.poi.ss.formula.WorkbookEvaluator.getEvalForPtg(WorkbookEvaluator.java:634)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:505)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateAny(WorkbookEvaluator.java:263)
at org.apache.poi.ss.formula.WorkbookEvaluator.evaluate(WorkbookEvaluator.java:205)
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateFormulaCellValue(XSSFFormulaEvaluator.java:267)
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateFormulaCell(XSSFFormulaEvaluator.java:154)
at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateAllFormulaCells(HSSFFormulaEvaluator.java:346)
at org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator.evaluateAllFormulaCells(HSSFFormulaEvaluator.java:337)
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.evaluateAllFormulaCells(XSSFFormulaEvaluator.java:241)
at com.kiodex.ExcelWorkbook2007.parse(ExcelWorkbook2007.java:26)
at ExcelTest.main(ExcelTest.java:24)
    Caused by: org.apache.poi.ss.formula.CollaboratingWorkbooksEnvironment$WorkbookNotFoundException: Could not resolve external workbook name '/**/**.xlsx'. Workbook environment has not been set up.
at org.apache.poi.ss.formula.CollaboratingWorkbooksEnvironment.getWorkbookEvaluator(CollaboratingWorkbooksEnvironment.java:194)
at org.apache.poi.ss.formula.WorkbookEvaluator.getOtherWorkbookEvaluator(WorkbookEvaluator.java:156)
at org.apache.poi.ss.formula.OperationEvaluationContext.createExternSheetRefEvaluator(OperationEvaluationContext.java:107)
... 13 more

工作表有适当的值,但是由于它们是公式类型的,所以当我们试图计算它时,它给出了公式中引用的excel的错误。

在下面的链接中,我尝试了所有可能的方法。公式评估Apache,但它不起作用。

请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2020-01-09 07:27:48

我今天也犯了同样的错误。因为一些数据丢失的问题,我从旧的excel文件中创建了新的excel文件,并更改了它的名称。当我在新的excel文件中计算公式时,它用它的旧的name.Following行给出了这个错误,解决了像魅力一样的问题:

代码语言:javascript
运行
复制
wb.setForceFormulaRecalculation(true)

希望它能帮到别人。

票数 2
EN

Stack Overflow用户

发布于 2021-03-17 06:15:58

代码语言:javascript
运行
复制
var bcd = sheet1.Workbook.GetCreationHelper().CreateFormulaEvaluator();
bcd.IgnoreMissingWorkbooks = true;
bcd.EvaluateAll();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31400541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档