如何修复使用Apache POI打开Excel时的错误。错误是“说”;我们发现xyz.xlsm中的某些内容存在问题。你想要……“吗?”;?

如何修复使用Apache POI打开Excel时的错误。错误是“说”;我们发现xyz.xlsm中的某些内容存在问题。你想要……“吗?”;?,excel,javafx,java-8,apache-poi,Excel,Javafx,Java 8,Apache Poi,我正在使用ApachePOI和Java8从一个包含多个工作表的现有模板生成excel。这是一个简单的基于JavaFX的桌面应用程序,它读取excel文件模板并根据用户输入删除工作表。由于某些原因,当我的代码删除特定工作表时,当我在程序完成创建excel文件后尝试打开excel文件时,会出现以下错误: We found a problem with some content in xyz.xlsm. Do you want us to try to recover as much as we ca

我正在使用ApachePOI和Java8从一个包含多个工作表的现有模板生成excel。这是一个简单的基于JavaFX的桌面应用程序,它读取excel文件模板并根据用户输入删除工作表。由于某些原因,当我的代码删除特定工作表时,当我在程序完成创建excel文件后尝试打开excel文件时,会出现以下错误:

We found a problem with some content in xyz.xlsm. Do you want us to try to recover as much as we can? If you trust the source of this workbook, click Yes. 

Errors were detected in file 'C:\LTDrive2_4\Excel\TwoPieceOBS_2019_08_15_12_01_33.xlsm'

removedRecords:
Removed Records: Table from /xl/tables/table79.xml part (Table)
Removed Records: Table from /xl/tables/table103.xml part (Table)

我在我的项目中遇到了类似的问题。我可以通过检查其他工作表中的单元格来解决这个问题,看看它们是否引用了正在删除的工作表中的表或单元格。修改所有单元格,使其不依赖于要删除的工作表后,问题得到解决

例如:

正在删除的工作表的单元格中有以下公式

=如果(ISNUMBER([@XYZ]),[@deg]/[@XYZ],“”)

另一张纸(可能是上面那张纸的复制粘贴)有这个公式

=如果(ISNUMBER(表726245820619242[@XYZ]),表726245820619242[@deg]/表726245820619242[@XYZ],“”)

如果您注意到有表格726。。。在导致问题的公式中


一旦我修正了公式,使其不存在任何依赖性,那么问题就解决了

您使用的是什么版本的ApachePOI?