Użyj POI do przeanalizowania programu Excel, ale uzyskał wyjątek „Niepoprawny podpis nagłówka”

Próbowałem użyć Apache POI (wersja 3.6) do parsowania pliku Excel .xls, ale dostałem tylko wyjątek:

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

Poszukałem jakiegoś wyniku, który w zasadzie powiedział, że „plik nie jest właściwie poprawnym plikiem Excela (tj. .Csv itd.), Ale zakończył się przyrostkiem .xls”. Jestem jednak pewien, że mój plik Excela jest ważny (w formacie Excel97-2003).

W celu zachowania tajemnicy nie mogłem opublikować mojego excela, ale gdy używam trybu emlac hexl do wyświetlenia tego binarnego pliku excel, nagłówek to:

D0CF 11E0 A1B1 1AE1

Myślę, że to właśnie oczekiwane POI (E11AB1A1E011CFD0, ale w big-endian). Ale dlaczego mam wyjątek?

BTW, jeśli użyję vima z poleceniem%! Xxd, aby wyświetlić ten sam plik Excela, otrzymałem nagłówek inny niż eamcs:

C390 C38F 11C3 A0C2

Cały plik binarny wydaje się zupełnie inny. Nie rozumiem.

Dziękujemy za pomoc!

questionAnswers(2)

yourAnswerToTheQuestion