xlrd无法读取从邮件附件下载的xlsx文件
这是一个非常奇怪的问题。我有一个比较大的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 个回答
1
对于这种格式,使用 pyopenxl,而不是 xlrd。你可以在这里找到更多信息:https://openpyxl.readthedocs.org/en/latest/
2
把你的Excel文件另存为.xls格式,而不是.xlsx格式。谢谢!