原文链接: http://www.juzicode.com/python-error-xlrd-excel-xlrd-biffh-xlrderror-xlsx-file-not-supported/
错误提示:
使用xlrd打开excel文件提示xlrd.biffh.XLRDError: Excel xlsx file; not supported
#juzicode.com /vx:桔子code
import xlrd
wb = xlrd.open_workbook("xlrd-test.xlsx")
print(wb.sheet_names())
print(wb.nsheets)
print(wb.sheets())
print(wb.sheet_by_name("Sheet1"))
print(wb.sheet_by_index(1))
==========运行结果:
Traceback (most recent call last):
File "xlrd-read-xlsx.py", line 3, in
wb = xlrd.open_workbook("xlrd-test.xlsx")
File "D:\Python\Python38\lib\site-packages\xlrd__init__.py", line 170, in open_workbook
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported
错误原因:
1、xlrd 2.0.0以后的版本不支持xlsx格式的excel文件:
解决方法:
1、将xlrd降级到1.2.0版本。
卸载当前版本:pip uninstall xlrd
再指定1.2.0版本安装:pip install xlrd==1.2.0
2、改用xls格式的excel文件,可以在原文件基础上另存为保存成xls格式,也可以新建一个xls格式的文件,将内容复制过来。但是不可以仅简单修改文件名后缀的方法,修改后缀没有改变其xlsx格式的本质:
#juzicode.com /vx:桔子code
import xlrd
#wb = xlrd.open_workbook("xlrd-test.xlsx")
wb = xlrd.open_workbook("xlrd-test.xls")#改用xls格式文件
print(wb.sheet_names())
print(wb.nsheets)
print(wb.sheets())
print(wb.sheet_by_name("Sheet1"))
print(wb.sheet_by_index(1))
==========运行结果:
['Sheet1', 'Sheet2', 'Sheet3']
3
[Sheet 0:, Sheet 1:, Sheet 2:]
Sheet 0:
Sheet 1:
扩展内容:
- https://xlrd.readthedocs.io/en/stable/changes.html xlrd版本变更
- http://www.python-excel.org/ 更多的excel表格python库
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。