pyExcelerator在读取一些文件时遇到问题

在阅读一些xls文件时,我使用pyExcelerator出现问题。

有一些我写的python脚本,它使用这个库来parsingXLS文件,并用信息填充数据库。

这些脚本parsing文件的模板可能会有所不同,我有时重新configuration脚本来处理它们。 与我碰到的模板之一的问题:pyExcelerator只是引发一个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 

一些问题的XLS文件包含空表和删除这些表帮助,但许多文件不能处理,即使没有空表。 这些文件中没有什么特别的,它们不包含公式或图片 – 只是string,数字和date。

正如我所看到的,pyExcelerator被它的作者放弃:(

有关解决这个问题的任何build议,非常感谢。

你可能希望给xlrd一个尝试…它开始(我相信)作为pyExcelerator的一个分支,所以合并需要很less的代码更改,但它是积极维护:

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

项目网站

一般信息,发行说明和文档中的历史logging

我是xlrd的作者。 它包含XLS文件,不是任何东西的分支。 我维护一个名为xlwt的软件包,它包含XLS文件,是pyExcelerator的一个分支。 pyExcelerator中的parse_xlsfunction已被弃用到从xlwt删除的地步。 改用xlrd。

鉴于你所复制的回溯,它看起来像文件可能已损坏。 在表单数据被parsing之前,它在那里做的事情发生得很好。 什么软件生成这些文件? 你能用Excel或OpenOffice.org的Calc或Gnumeric打开它们吗? xlrd可能会给你一个更有意义的错误信息。 您可能希望向我发送(insert_punctuation('sjmachin','lexicon','net'))您的失败文件的副本; 请包括一些与一些没有空表。 顺便说一下,你用什么来删除空白表? 当用空表处理文件时,从pyExcelerator得到什么错误信息?