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
そして、バイナリファイル全体が完全に異なっているように見えます。私は理解できない。
助けてくれてありがとう!