Java 使用POI的异常
我使用的是poi 3.7,上传的文件是.xlsx 控制台显示:Java 使用POI的异常,java,apache-poi,Java,Apache Poi,我使用的是poi 3.7,上传的文件是.xlsx 控制台显示: org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41) at
org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:186)
at poi.POITest.ReadAndPrintExcelFile(POITest.java:15)
at poi.POITest.main(POITest.java:59)
Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:147)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:592)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:222)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
... 3 more
org.apache.poi.poixmleexception:org.apache.poi.openxml4j.exceptions.InvalidFormatException:包应包含内容类型部分[M1.13]
在org.apache.poi.util.PackageHelper.open(PackageHelper.java:41)
位于org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:186)
在poi.POITest.ReadAndPrintExcelFile(POITest.java:15)中
位于poi.POITest.main(POITest.java:59)
原因:org.apache.poi.openxml4j.exceptions.InvalidFormatException:包应包含内容类型部分[M1.13]
位于org.apache.poi.openxml4j.opc.ZipPackage.getpartsiml(ZipPackage.java:147)
位于org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:592)
位于org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:222)
位于org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
... 3个以上
我使用POI,有时当这种情况发生时,你只需通过实验来找出问题所在。以下是我过去为帮助找出问题所在所做的工作:
公式和宏可能特别有问题。我使用POI,有时发生这种情况时,你只需通过实验来找出问题所在。以下是我过去为帮助找出问题所在所做的工作:
org.apache.poi.ss.usermodel.WorkbookFactory
而不是创建实例:新建HSSFWorkbook()或新建XSSForkbook()
只用
org.apache.poi.ss.usermodel.WorkbookFactory
而不是创建实例:新建HSSFWorkbook()或新建XSSForkbook()
不是你想听的答案。但是我发现当密码错误时我会出现这个错误。 检查对Decryptor.verifyPassword()的调用在代码中是否返回true。如果是这样,密码就可以了 对我来说,我得到了一个false,代码被忽略并尝试读取文件。然后我得到了“包应该包含内容类型部分[M1.13]”错误。 一旦我输入了正确的密码,我得到了返回的true,文件被解密
希望这对你有所帮助,而不是你想听的答案。但是我发现当密码错误时我会出现这个错误。 检查对Decryptor.verifyPassword()的调用在代码中是否返回true。如果是这样,密码就可以了 对我来说,我得到了一个false,代码被忽略并尝试读取文件。然后我得到了“包应该包含内容类型部分[M1.13]”错误。 一旦我输入了正确的密码,我得到了返回的true,文件被解密
希望这对您有所帮助如果您正在使用open office并试图以xlsx格式保存文件,您仍然会收到错误;使用xssf也不能解决问题。您需要使用Microsoft Office Excel工作表以避免错误。如果您使用open Office并试图以xlsx格式保存文件,仍然会出现错误;同样,使用xssf也不能解决问题。您需要使用Microsoft Office Excel工作表来避免错误。我发现我的xlsx文件已损坏,因此必须将其删除并重新创建。我发现我的xlsx文件已损坏,因此必须将其删除并重新创建。您试图打开的文件似乎已损坏。你能直接在Excel中打开它吗?看起来你使用了错误的库来打开你的Excel文件我可以直接在Excel中打开它!!!该库不是从官方网站下载的。您试图打开的文件似乎已损坏。你能直接在Excel中打开它吗?看起来你使用了错误的库来打开你的Excel文件我可以直接在Excel中打开它!!!图书馆不是从官方网站下载的。非常感谢!这是我见过的最简单的解释和解决方案。非常感谢!这是一个比我见过的任何东西都简单得多的解释和解决方案。
Workbook exWorkBook = WorkbookFactory.create(excelInputStream);