Domanda

Ho un problema utilizzando pyExcelerator quando la lettura di alcuni xls-files.

Ci sono alcuni script Python che ho scritto, che usano questa libreria per analizzare XLS-files e popolare database con informazioni.

I modelli per i file di questi script analizzano possono variare e sono a volte riconfigurare lo script di gestirli. Con l'uno dei modelli che ho incontrato problema: pyExcelerator appena solleva un'eccezione:

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

Alcuni dei XLS-files problematici contenevano fogli vuoti e la rimozione di questi fogli ha aiutato, ma molti dei file non può essere gestito anche senza fogli vuoti. Non c'è niente di straordinario in questi file e non contengono formule o immagini -. Solo stringhe, numeri e date

Per quanto posso vedere, la pyExcelerator è abbandonato da suo autore :(

Tutti i suggerimenti su riparazione della questa edizione sono molto apprezzate.

È stato utile?

Soluzione

Si potrebbe voler dare XLRD una prova ... è iniziato (credo) come un fork di pyExcelerator, così incorporazione richiede poche modifiche al codice, ma è mantenuto attivamente:

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

Sito web del progetto

Informazioni generali, note di rilascio e la storia dal documentazione

Altri suggerimenti

Sono l'autore di XLRD. It e bis s file r d XLS e non è un fork di qualsiasi cosa. Io sostengo un pacchetto chiamato xlwt che w ri t es file XLS e è un fork di pyExcelerator. La funzionalità parse_xls in pyExcelerator è stata sconsigliata fino al punto di rimozione dal xlwt. Utilizzare XLRD invece.

Data la traceback che si riprodotta, sembra che il file potrebbe essere danneggiato. Quello che sta facendo ci accade ben prima che i dati foglio viene analizzato. Quale software produce questi file? Riesci a aprire con Excel o Calc di OpenOffice.org o Gnumeric? XLRD può dare un messaggio di errore più significativo. È possibile, come mandarmi (insert_punctuation ( 'sjmachin', 'lessico', 'net')) copia del file in mancanza di (s); si prega di includere alcune con e altre senza fogli vuoti. A proposito, che cosa stai usando per rimuovere i fogli vuoti? Che messaggio di errore si ottiene da pyExcelerator durante l'elaborazione di file con fogli vuoti?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top