Utiliser POI pour analyser Excel, mais a obtenu d'exception “en-Tête non Valide Signature”

J'ai essayé d'utiliser Apache POI (Version 3.6) pour analyser Excel .fichier xls, mais suis seule Exception:

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

J'ai Googlé un résultat, qui, fondamentalement, a dit que "Le fichier est non valide d'un fichier excel (c'est à dire .csv et ainsi de suite), mais a terminé avec le suffixe .xls". Mais je suis sûr que mon fichier excel est valide (en Excel97-2003 format).

Pour secret considérations, je ne pouvais pas poster mon excel, mais lorsque j'utilise emacs hexl-mode pour afficher ce fichier binaire en fichier excel, l'en-tête est:

D0CF 11E0 A1B1 1AE1

Je pense que c'est juste ce POI prévu (E11AB1A1E011CFD0, mais en big-endian). Mais pourquoi j'ai l'exception?

BTW, si j'utilise vim avec la commande %!xxd pour afficher le même fichier excel, j'ai eu un en-tête différent de eamcs:

C390 C38F 11C3 A0C2

Et de l'ensemble du fichier binaire semble totalement différents. Je ne comprends pas.

Merci pour toute votre aide!

OriginalL'auteur sailing | 2012-08-07