我试图使用 Apache POI(版本 3.6)来解析 Excel .xls 文件,但只有异常:
java.io.IOException: Invalid header signature; read 0x07B1FD124BEDF108, expected 0xE11AB1A1E011CFD0
我用谷歌搜索了一些结果,基本上说“该文件实际上不是有效的 excel 文件(即 .csv 等),但以后缀 .xls 结尾”。但我很确定我的 excel 文件是有效的(Excel97-2003 格式)。
出于保密考虑,我无法发布我的 excel,但是当我使用 emacs hexl-mode 查看这个二进制 excel 文件时,标题是:
D0CF 11E0 A1B1 1AE1
我认为这正是 POI 所期望的(E11AB1A1E011CFD0
,但在大端)。但为什么我得到了例外?
顺便说一句,如果我使用带有命令 %!xxd 的 vim 来查看相同的 excel 文件,我会得到一个与 eamcs 不同的标题:
C390 C38F 11C3 A0C2
整个二进制文件似乎完全不同。我无法理解。
感谢您的任何帮助!