使用python xlrd模块打开Excel文件时出现编码错误

时间:2019-10-01 13:55:49

标签: python python-3.x python-requests

我有一些扩展名为xls的excel文件,当我使用xlrd打开这些文件时,它失败了,我不知道如何解决。

    oldbook=xlrd.open_workbook('file.xls')
    oldsheet=oldbook.sheets()[0]

PS C:\Users\我是猫\Desktop\python> python -u "c:\Users\我是猫\Desktop\python\a.py"
    Traceback (most recent call last):
      File "c:\Users\我是猫\Desktop\python\a.py", line 64, in <module>
        oldbook=xlrd.open_workbook(result)
      File "E:\python\lib\site-packages\xlrd\__init__.py", line 157, in open_workbook
        ragged_rows=ragged_rows,
      File "E:\python\lib\site-packages\xlrd\book.py", line 117, in open_workbook_xls
        bk.parse_globals()
      File "E:\python\lib\site-packages\xlrd\book.py", line 1209, in parse_globals
        self.handle_format(data)
      File "E:\python\lib\site-packages\xlrd\formatting.py", line 538, in handle_format
        unistrg = unpack_unicode(data, 2)
      File "E:\python\lib\site-packages\xlrd\biffh.py", line 284, in unpack_unicode
        strg = unicode(rawstrg, 'utf_16_le')
      File "E:\python\lib\site-packages\xlrd\timemachine.py", line 31, in <lambda>
        unicode = lambda b, enc: b.decode(enc)
      File "E:\python\lib\encodings\utf_16_le.py", line 16, in decode
        return codecs.utf_16_le_decode(input, errors, True)
    UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 10-11: illegal encoding
    PS C:\Users\我是猫\Desktop\python>

1 个答案:

答案 0 :(得分:0)

尝试覆盖使用的编码:

SomeDatabaseProject.SomeSchema.SomeTable

您也可以尝试oldbook = xlrd.open_workbook('file.xls', encoding_override="cp1252") ,尝试编码直到找到正确的编码。