我想使用xlrd打开Excel文件(.xls)。这是我正在使用的代码摘要:使用xlrd打开Excel文件时出现编码错误
import xlrd
workbook = xlrd.open_workbook('thefile.xls')
这适用于大多数文件,但对于从特定组织获得的文件会失败。下面是我尝试从此组织打开Excel文件时遇到的错误。
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/app/.heroku/python/lib/python2.7/site-packages/xlrd/__init__.py", line 435, in open_workbook
ragged_rows=ragged_rows,
File "/app/.heroku/python/lib/python2.7/site-packages/xlrd/book.py", line 116, in open_workbook_xls
bk.parse_globals()
File "/app/.heroku/python/lib/python2.7/site-packages/xlrd/book.py", line 1180, in parse_globals
self.handle_writeaccess(data)
File "/app/.heroku/python/lib/python2.7/site-packages/xlrd/book.py", line 1145, in handle_writeaccess
strg = unpack_unicode(data, 0, lenlen=2)
File "/app/.heroku/python/lib/python2.7/site-packages/xlrd/biffh.py", line 303, in unpack_unicode
strg = unicode(rawstrg, 'utf_16_le')
File "/app/.heroku/python/lib/python2.7/encodings/utf_16_le.py", line 16, in decode
return codecs.utf_16_le_decode(input, errors, True)
UnicodeDecodeError: 'utf16' codec can't decode byte 0x40 in position 104: truncated data
这看起来好像xlrd试图打开比UTF-16以外的其他编码的Excel文件。我怎样才能避免这个错误?该文件是以错误的方式编写的,还是仅存在导致该问题的特定字符?如果我打开并重新保存Excel文件,xlrd将打开文件而不会出现问题。
我曾尝试用不同的编码覆盖打开工作簿,但这也不起作用。
我尝试打开该文件,请访问:
问题这里报告:https://github.com/python-excel/xlrd/issues/128
我不知道什么组织用来写Excel文件,但我对他们有一个问题这一点。我会尝试你的第二个选择,因为你说它已经为你工作,并在这里发布我的结果。我很有希望 - 谢谢你的出色反应。 – Erik
这很好。谢谢。 – Erik
我无法奖励另外15个小时的奖励 - 但我会这么做。再次感谢。 – Erik