Pregunta

Tengo un problema con pyExcelerator al leer algunos xls-archivos.

Hay algunas secuencias de comandos Python que escribí, que utilizan esta biblioteca para analizar archivos XLS y poblar la base de datos con la información.

Las plantillas para los archivos de estos scripts analizan pueden variar y yo a veces volver a configurar la secuencia de comandos para manejarlos. Con la una de las plantillas me encontré con un problema: pyExcelerator simplemente genera una excepción:

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

Algunos de los archivos XLS-problema contenido hojas vacías y la eliminación de estas hojas ayudó, pero muchos de los archivos no se pueden manejar incluso sin hojas vacías. No hay nada extraordinario en estos archivos y que no contienen fórmulas o imágenes -. Sólo cadenas, números y fechas

Como puedo ver, el pyExcelerator es abandonado por su autor :(

Cualquier sugerencia en la fijación de este problema son muy apreciados.

¿Fue útil?

Solución

Es posible que desee darle una oportunidad ... XLRD se originó (creo) como un tenedor de pyExcelerator, lo que la incorporación requiere pocos cambios en el código, pero se mantiene activa:

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

sitio web del Proyecto

información general, notas de la versión y de la historia de la documentación

Otros consejos

Soy el autor de XLRD. It r ea d s archivos XLS y no es un tenedor de nada. Mantengo un paquete llamado xlwt que w ri T Es archivos XLS y es un tenedor de pyExcelerator. La funcionalidad parse_xls en pyExcelerator desfasada y hasta el punto de eliminación de xlwt. Utilice XLRD lugar.

Dado el rastreo que reproducida, parece que el archivo esté dañado. Lo que está haciendo allí ocurre mucho antes de que se analiza los datos de la hoja. ¿Qué software produce estos archivos? ¿Puede usted abrir con Excel o Calc de OpenOffice.org o Gnumeric? XLRD le puede dar un mensaje de error más significativo. Es posible que quiera enviarme (insert_punctuation ( 'sjmachin', 'léxico', 'red')) copias de su archivo (s) a falta; por favor incluya algunos con y otros sin hojas vacías. Por cierto, lo está usando para quitar hojas vacías? ¿Qué mensaje de error se puede conseguir a partir pyExcelerator al procesar archivos con hojas vacías?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top