Python的xlrd库无法打开xlsx格式文件的原因是什么?
xlrd不支持.xlsx格式的具体原因
- xlrd从2.0.0版本开始官方移除了对.xlsx格式的读取支持,仅保留对传统二进制格式.xls的兼容
- 官方做出该调整的核心原因有两个:
- 此前版本中.xlsx解析逻辑存在多个安全漏洞,恶意构造的.xlsx文件可能触发任意代码执行风险
- .xlsx属于基于XML的压缩打包格式,解析逻辑的维护成本远高于传统.xls格式,官方开发团队资源有限,因此选择收缩功能范围,聚焦在更成熟稳定的.xls格式支持上
适配.xlsx读取的可行方案
- 方案一:回退xlrd到最后一个支持.xlsx的版本,执行安装命令:
pip install xlrd==1.2.0,注意该版本存在已知安全漏洞,请勿用于处理来源不明的Excel文件 - 方案二(更推荐):改用专门支持.xlsx格式的第三方库:
- 仅需读取/写入.xlsx文件可以使用
openpyxl,示例读取代码:
- 仅需读取/写入.xlsx文件可以使用
from openpyxl import load_workbook wb = load_workbook("./excel_file.xlsx")
- 如果需要批量处理表格数据,可以使用
pandas读取,底层会自动适配openpyxl依赖,代码更简洁:
import pandas as pd df = pd.read_excel("./excel_file.xlsx")
内容的提问来源于stack exchange,提问作者fshabashev
相关产品推荐
相关产品推荐

