p>
问题分析
xlrd.biffh.XLRDError: Excel xlsx file; not supported
这个错误表示你尝试使用 xlrd
库来读取一个 .xlsx
格式的 Excel 文件,但是 xlrd
库从版本 2.0.0 开始就不再支持 .xlsx
文件。之前的 xlrd
版本能够读取 .xls
(Excel 97-2003 工作簿)和 .xlsx
(Excel 2007+ 工作簿)两种格式,但自 2.0.0 版本起,它只支持 .xls
格式。
报错原因
报错的原因是你正在使用不支持 .xlsx
格式的 xlrd
版本(2.0.0 或更高版本)。如果你的代码中指定了 xlrd
作为读取 .xlsx
文件的库,那么就会抛出这个错误。
解决思路
- 降级
xlrd
:如果你必须使用xlrd
并且需要读取.xls
文件,你可以将xlrd
降级到一个支持.xlsx
的版本(例如 1.2.0)。 - 使用其他库:对于
.xlsx
文件,你可以使用openpyxl
或pandas
(它内部使用了openpyxl
或xlrd
,取决于你安装的版本)来读取。
解决方法
方法一:降级 xlrd
如果你确实需要降级 xlrd
,你可以使用 pip
来安装一个旧版本:
pip install xlrd==1.2.0
然后,你可以像之前一样使用 xlrd
来读取 .xlsx
文件(但请注意,这不是推荐的做法,因为旧版本可能包含已修复的安全漏洞或其他问题)。
方法二:使用 openpyxl
下滑查看解决方法
对于 .xlsx
文件,推荐使用 openpyxl
库。以下是一个使用 openpyxl
读取 .xlsx
文件的示例:
from openpyxl import load_workbook
# 加载工作簿
workbook = load_workbook(filename='your_file.xlsx')
# 选择第一个工作表
sheet = workbook.active
# 读取单元格的值
cell_value = sheet['A1'].value
print(cell_value)
方法三:使用 pandas
读取 .xlsx
文件
如果你熟悉 pandas
库,你可以用它来轻松地读取 .xlsx
文件:
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('your_file.xlsx')
# 显示前几行数据
print(df.head())
在这个例子中,pandas
会自动选择使用 openpyxl
(如果已安装)或 xlrd
(如果安装了旧版本并且没有安装 openpyxl
)来读取 .xlsx
文件。但由于 xlrd
不再支持 .xlsx
,推荐显式安装并使用 openpyxl
。