Java 打开Excel文件时LOC标头无效(签名错误)

Java 打开Excel文件时LOC标头无效(签名错误),java,excel,apache-poi,Java,Excel,Apache Poi,尝试使用Apache POI打开Excel文件时遇到错误。调用新XSSF工作簿(Excel文件)导致: org.apache.poi.openxml4j.exceptions.InvalidFormatException: invalid LOC header (bad signature) at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelations

尝试使用Apache POI打开Excel文件时遇到错误。调用
新XSSF工作簿(Excel文件)
导致:

 org.apache.poi.openxml4j.exceptions.InvalidFormatException: invalid LOC header (bad signature)
 at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:369) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:164) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:132) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:561) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:109) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:80) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:125) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.ZipPackagePart.<init>(ZipPackagePart.java:78) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:241) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:254) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:201) ~[tika-app-1.11.jar!/:1.11]
 at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:301) ~[tika-app-1.11.jar!/:1.11]
org.apache.poi.openxml4j.exceptions.InvalidFormatException:无效的LOC头(错误签名)
在org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:369)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.PackageRelationshipCollection.(PackageRelationshipCollection.java:164)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.PackageRelationshipCollection.(PackageRelationshipCollection.java:132)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:561)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.PackagePart.(PackagePart.java:109)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.PackagePart.(PackagePart.java:80)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.PackagePart.(PackagePart.java:125)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.ZipPackagePart.(ZipPackagePart.java:78)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.ZipPackage.getpartsiml(ZipPackage.java:241)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:254)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:201)~[tika-app-1.11.jar!/:1.11]
在org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:301)~[tika-app-1.11.jar!/:1.11]
然而,并不是所有的文件都是这样。有些工作很好

Excel文件位于我们无法完全访问的服务器上,因此很难知道哪些文件有效,哪些文件失败。我们认为这可能是密码保护,但不是,密码加密的文件给了我们另一个错误


是否有人对某些Excel文件中可能触发此异常的内容有任何提示?

通过FTP以文本形式上载的Excel文件,从而将
\r\n
转换为
\n
。它不是二进制数据类型


当上传发生在Windows上,并且上传的文件小了几个字节,统计上减少了0.4%时,就可以看到这一点。

有时,CSV文本文件会手动指定结尾
.xls(x)
,以确保Excel将其打开。xlsx也可以是单个XML文件。所以试试文本编辑器。好主意,但不是这样,当我们做
cat
时,内容是乱七八糟的,不像CSV文件会输出的内容。与此同时,我们最终改变了方式,设法下载了有问题的文件。它已损坏,简单明了,即使Excel也无法打开它。所以整个问题可能很快就过时了。可能是一个Excel文件通过FTP作为文本上传,从而将\r\n转换为\n。就是这样,Joop Eggen!我们的客户端更改了FTP配置,这就是导致问题的原因。如果你能给出一个带有这个提示的答案,我很乐意为将来有同样问题的用户接受:)