gpt4 book ai didi

java - 使用POI解析Excel但出现异常 "Invalid Header Signature"

转载 作者:行者123 更新时间:2023-12-02 03:15:35 29 4
gpt4 key购买 nike

我尝试使用 Apache POI(版本 3.6)来解析 Excel .xls 文件,但只得到异常:

java.io.IOException: Invalid header signature; read 0x07B1FD124BEDF108, expected 0xE11AB1A1E011CFD0

我在 Google 上搜索了一些结果,基本上是说“该文件实际上不是有效的 Excel 文件(即 .csv 等),但以后缀 .xls 结尾”。但我非常确定我的 Excel 文件是有效的(Excel97-2003 格式)。

出于保密考虑,我无法发布我的excel,但是当我使用emacs hexl-mode查看这个二进制excel文件时,标题是:

D0CF 11E0 A1B1 1AE1

我认为这正是 POI 所期望的(E11AB1A1E011CFD0,但采用大尾数法)。但为什么我得到了异常(exception)?

顺便说一句,如果我使用 vim 和命令 %!xxd 查看同一个 excel 文件,我得到的标题与 eamcs 不同:

C390 C38F 11C3 A0C2

整个二进制文件看起来完全不同。我无法理解。

感谢您的帮助!

最佳答案

如果出现该异常,则说明您的文件实际上不是真正的 .xls 文件。相反,它要么是其他文件,重命名为具有 .xls 扩展名,要么是损坏的文件。

我建议您尝试在 Excel 中打开该文件,然后另存为。这可能会给您有关文件类型的提示。如果没有,请另存为 Excel .xls,然后您就可以打开该文件

我不知道您的文件是什么(我无法识别 header ),但我可以向您保证它不是有效的 .xls 文件所具有的 OLE2 header 。

有可能 Apache Tika也许能够弄清楚它是什么类型的二进制文件,所以你总是可以尝试使用 Tika-App jar

关于java - 使用POI解析Excel但出现异常 "Invalid Header Signature",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846398/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com