Use o ponto de interesse para analisar o Excel, mas receba a exceção "Assinatura de cabeçalho inválida"
Eu estava tentando usar o Apache POI (versão 3.6) para analisar o arquivo .xls do Excel, mas recebi apenas a exceção:
java.io.IOException: Invalid header signature; read 0x07B1FD124BEDF108, expected 0xE11AB1A1E011CFD0
Eu tenho Googled algum resultado, que basicamente disse que "O arquivo não é realmente um arquivo válido do Excel (ou seja, .csv e assim por diante), mas terminou com o sufixo .xls". Mas tenho certeza que meu arquivo excel é válido (no formato Excel97-2003).
Por questões de sigilo, eu não pude postar meu excel, mas quando eu uso o modo hexl do emacs para visualizar este arquivo binário do excel, o cabeçalho é:
D0CF 11E0 A1B1 1AE1
Eu acho que é exatamente o que o POI esperava (E11AB1A1E011CFD0
, mas em big-endian). Mas por que eu recebi a exceção?
BTW, se eu usar o vim com o comando%! Xxd para ver o mesmo arquivo do excel, eu tenho um cabeçalho diferente do eamcs:
C390 C38F 11C3 A0C2
E todo o arquivo binário parece totalmente diferente. Eu não entendo.
Obrigado pela sua ajuda!