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
Vous devez vous connecter pour publier un commentaire.
Si vous obtenez cette exception, alors votre fichier n'est pas un vrai .fichier xls. Il va plutôt être dans un autre fichier, renommé pour avoir un .extension xls, ou un fichier corrompu.
Je vous suggère de vous essayer d'ouvrir le fichier dans Excel, et de faire un Enregistrer sous. Qui peut vous donner un indice sur le type de fichier. Si non, faire un enregistrer sous Excel .xls, et alors vous serez en mesure d'ouvrir ce fichier
Je ne sais pas ce que vous produisez est (je ne reconnais pas l'en-tête), mais je peux vous assurer que ce n'est pas un OLE2 en-tête valide .fichier xls aurait.
Il est possible que Apache Tika peut être en mesure de travailler sur ce genre de fichier binaire, il est, donc vous pouvez toujours essayer avec la Tika-Application jar
Résolu! Mon fichier excel n'est pas chiffré, mais la lecture en mode chiffré. Merci Gagravarr!
OriginalL'auteur Gagravarr
Juste une idée, si vous utilisez maven assurez-vous de la ressource balise de filtre est défini sur false. Sinon maven tend à corrompre les fichiers xls dans la copie de la phase dans votre pom.xml
OriginalL'auteur PRAWIN