这个错误是由于 xlrd
库不再支持读取 .xlsx
格式的 Excel 文件。从 xlrd
1.2.0 版本开始,只支持读取旧的 .xls
格式。如果尝试读取 .xlsx
文件,则会遇到此错误。
解决方案:
-
使用
openpyxl
替代xlrd
将代码中使用xlrd
的部分替换为openpyxl
,因为openpyxl
支持.xlsx
格式。修改以下代码:
import xlrd # 原代码
替换为:
import openpyxl
然后在
excel_to_matrix
函数中:def excel_to_matrix(path): workbook = openpyxl.load_workbook(path) sheet = workbook.active # 获取第一个工作表 data = [] for row in sheet.iter_rows(values_only=True): data.append(list(row)) return data
-
将 Excel 文件保存为
.xls
格式
如果不想修改代码,可以使用 Excel 将.xlsx
文件另存为.xls
格式,再使用原来的代码。 -
降级
xlrd
版本
如果希望继续使用xlrd
读取.xlsx
文件,可以降级xlrd
到 1.2.0 或更早的版本。运行以下命令:pip install xlrd==1.2.0
注意:降级后,可能会丢失一些新特性的支持,不推荐这种方法。