求助解决PyCharm中使用xlrd读取xlsx文件时的格式不支持报错
报错核心原因
- 触发报错的根源为高版本xlrd的能力裁剪:自xlrd 2.0.0版本起,官方彻底移除了对xlsx格式Excel文件的读取支持,仅保留对旧版二进制xls格式的解析能力。当前PyCharm项目虚拟环境中安装的xlrd版本高于2.0.0,直接调用
xlrd.open_workbook()读取xlsx文件时,就会抛出堆栈中显示的XLRDError: Excel xlsx file; not supported格式不支持错误。
对应解决方案
可根据自身项目场景选择以下任意一种方式解决:
方案1:降级xlrd到兼容xlsx格式的版本
- 打开PyCharm当前项目的终端,确认已激活项目自带的venv虚拟环境(终端开头会显示类似
(venv) D:\xxx的标识,避免将依赖安装到全局Python路径导致项目环境不生效) - 执行版本安装命令:
pip install xlrd==1.2.0 - 安装完成后无需修改原有
ReadExelFile.py的代码逻辑,即可正常读取xlsx文件 - 注意:该方案仅适合快速适配现有代码的场景,xlrd 1.2.0及更早版本不再接收后续安全补丁和功能更新
方案2:换用原生支持xlsx格式的解析库
- 优先选用官方长期维护、对xlsx格式兼容性稳定的
openpyxl库 - 先在项目终端执行安装命令:
pip install openpyxl - 修改原有代码:
- 移除原有的
import xlrd导入语句,替换为from openpyxl import load_workbook - 将原读文件语句
wb = xlrd.open_workbook(x)替换为wb = load_workbook(x, data_only=True)
- 移除原有的
- 注意:该方式不支持读取旧版xls格式文件,如果需要同时兼容老格式xls文件,可以搭配pandas的统一读取接口实现多格式兼容
内容的提问来源于stack exchange,提问作者Divyansh Parakh
相关产品推荐
相关产品推荐

