Question

J'ai un problème à l'aide pyExcelerator lors de la lecture des fichiers xls.

Il sont des scripts python i REDIGES qui utilisent cette bibliothèque pour analyser les fichiers XLS et remplir la base de données avec des informations.

Les modèles pour les fichiers de ces scripts compilent peuvent varier et je reconfigurer parfois le script pour les manipuler. Avec l'un des modèles je suis tombé problème: pyExcelerator soulève simplement une exception:

Traceback (most recent call last):
 File "/home/* * */parsexls.py",
line 64, in handle_label
   parser.parse()
 File "/home/* * */parsers.py", line 335, in parse
   self.contents = pyExcelerator.parse_xls(self.file_record.file,
self.encoding)
 File "/usr/local/lib/python2.6/dist-packages/pyExcelerator/ImportXLS.py",
line 327, in parse_xls
   ole_streams = CompoundDoc.Reader(filename).STREAMS
 File "/usr/local/lib/python2.6/dist-packages/pyExcelerator/CompoundDoc.py",
line 67, in __init__
   self.__build_short_sectors_data()
 File "/usr/local/lib/python2.6/dist-packages/pyExcelerator/CompoundDoc.py",
line 256, in __build_short_sectors_data
   dentry_start_sid, stream_size) = self.dir_entry_list[0]
IndexError: list index out of range

Certains des fichiers XLS-problème contenait des feuilles vides et la suppression de ces feuilles ont aidé, mais la plupart des fichiers ne peuvent pas être traitées, même sans feuilles vides. Il n'y a rien d'extraordinaire dans ces fichiers et ils ne contiennent pas de formules ou des images -. Seulement des chaînes, des chiffres et des dates

Comme je peux voir, la pyExcelerator est abandonnée par son auteur :(

Toutes les suggestions sur la fixation de cette question sont très appréciés.

Était-ce utile?

La solution

Vous voudrez peut-être donner xlrd un essai ... il a commencé (je crois) comme une fourchette de pyExcelerator, donc peu de changements incorporant nécessite de code, mais il est maintenu activement:

http://pypi.python.org/pypi/xlrd

site web du projet

Informations générales, notes de version et de l'histoire de la de documentation

Autres conseils

Je suis l'auteur de xlrd. Il r Ea d s fichiers XLS et n'est pas une fourchette de quoi que ce soit. Je maintiens un paquet appelé xlwt qui w ri t es fichiers XLS et est une fourche de pyExcelerator. La fonctionnalité parse_xls dans pyExcelerator a été dépréciée au point de retrait de xlwt. Utilisez plutôt xlrd.

Compte tenu du retraçage que vous Reproduit, il semble que le fichier peut être endommagé. Qu'est-ce qu'il fait là arrive bien avant que les données de la feuille est analysée. Quel logiciel produit ces fichiers? Pouvez-vous les ouvrir avec Excel ou Calc OpenOffice.org ou Gnumeric? xlrd peut vous donner un message d'erreur plus significatif. Vous pouvez me faire parvenir (insert_punctuation ( 'sjmachin', 'lexique', 'net')) copies de votre dossier à défaut (s); S'il vous plaît inclure certains avec et d'autres sans feuilles vides. Soit dit en passant, qu'est-ce que vous utilisez pour enlever des feuilles vides? Quel message d'erreur que vous obtenez de pyExcelerator lors du traitement de fichiers avec des feuilles vides?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top