在读取一些 xls 文件时,我在使用 pyExcelerator 时遇到了问题。
我写了一些 python 脚本,它们使用这个库来解析 XLS 文件并用信息填充数据库。
这些脚本解析的文件的模板可能会有所不同,我有时会重新配置脚本来处理它们。使用其中一个模板时我遇到了问题:pyExcelerator 只是引发了一个异常:
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 文件包含空工作表,删除这些工作表有帮助,但许多文件即使没有空工作表也无法处理。这些文件没有什么特别之处,它们不包含公式或图片——只有字符串、数字和日期。
正如我所看到的,pyExcelerator 被它的作者抛弃了:(
非常感谢任何有关解决此问题的建议。