xlrd无法读取从电子邮件附件下载的xlsx文件

时间:2014-04-28 16:50:38

标签: python excel xlrd fileparsing

这是一个非常奇怪的问题。我有一个很大的excel文件(我不能讨论它的内容,因为它是敏感数据)是一个.xlsx和一个有效的excel文件。

当我从我的电子邮件中下载它并将其保存在我的桌面上并尝试使用xlrd打开工作簿时,xlrd会抛出一个AssertionError并且不会告诉我出了什么问题。

当我使用文件浏览器打开文件,然后保存它(不做任何更改),它与xlrd完美配合。

以前有人遇到过这个问题吗?我尝试将各种标志传递给open_workbook函数无效,我尝试使用谷歌搜索错误。到目前为止,我还没找到任何东西。

我使用的方法如下


    file = open('bigexcelfile.xlsx')
    fileString = file.read()
    wb = open_workbook(file_contents=filestring)

请帮忙!错误如下


    Traceback (most recent call last):
      File "./varify/samples/resources.py", line 354, in post
        workbook = xlrd.open_workbook(file_contents=fileString)
      File "/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/__init__.py", line 416, in open_workbook
        ragged_rows=ragged_rows,
      File "/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/xlsx.py", line 791, in open_workbook_2007_xml
        x12sheet.process_stream(zflo, heading)
      File "/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/xlsx.py", line 528, in own_process_stream
        self_do_row(elem)
      File "/home/vagrant/varify-env/lib/python2.7/site-packages/xlrd/xlsx.py", line 722, in do_row
        assert tvalue is not None
    AssertionError

2 个答案:

答案 0 :(得分:1)

将Excel文件重命名或另存为.xls而不是.xlsx 谢谢

答案 1 :(得分:0)

对于以下格式使用pyopenxl而不是xlrd:https://openpyxl.readthedocs.org/en/latest/