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!