【发布时间】:2012-08-07 12:48:35
【问题描述】:
我试图使用 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
整个二进制文件似乎完全不同。看不懂。
感谢您的帮助!
【问题讨论】:
标签: java excel apache-poi