Python Pandas读取.xlsx文件报错,咨询读取.xls与.xlsx的不同方法
Pandas读取.xls与.xlsx文件的方法差异及报错解决
报错原因
你遇到的xlrd.biffh.XLRDError: Excel xlsx file; not supported是因为xlrd 2.0及以上版本不再支持.xlsx格式,仅保留对旧版.xls格式的支持,而Pandas默认读取Excel时会调用xlrd,所以读取xlsx会触发报错。
不同格式的读取方法
读取.xls文件
直接使用xlrd引擎即可,若你的xlrd版本低于2.0,甚至无需手动指定引擎(默认就是xlrd):
import pandas as pd # 显式指定引擎(推荐,避免版本兼容问题) df = pd.read_excel(r'path/sample.xls', skiprows=2, engine='xlrd')
读取.xlsx文件
需要使用支持.xlsx格式的第三方引擎,最常用的是openpyxl:
- 先安装依赖包:
pip install openpyxl
- 执行读取代码:
import pandas as pd df = pd.read_excel(r'path/sample.xlsx', skiprows=2, engine='openpyxl')
如果需要读取二进制格式的Excel文件(.xlsb),可以使用pyxlsb引擎:
- 安装依赖包:
pip install pyxlsb
- 执行读取代码:
import pandas as pd df = pd.read_excel(r'path/sample.xlsb', skiprows=2, engine='pyxlsb')
总结
Pandas的read_excel是统一的读取接口,但不同Excel格式依赖不同的底层引擎:
- .xls → 依赖xlrd
- .xlsx/.xlsm → 依赖openpyxl
- .xlsb → 依赖pyxlsb
内容的提问来源于stack exchange,提问作者MPasks
相关产品推荐
相关产品推荐

