You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas的read_excel加载多sheet xlsx文件失败如何修正代码

pandas 加载多工作表Excel文件失败修正方案

核心依赖补装

pandas.read_excel 本身不内置Excel格式解析能力,必须先安装对应解析引擎:

  • 解析.xlsx格式:执行命令安装依赖 pip install openpyxl
  • 解析.xls旧格式:执行命令安装依赖 pip install xlrd==1.2.0,注意2.0及以上版本xlrd不再支持xlsx格式解析

路径参数校验

  • Windows系统路径如果包含反斜杠\,必须在路径字符串前加r做原生转义,避免反斜杠被识别为特殊转义字符,示例:pd.read_excel(r'D:\业务数据\月度报表.xlsx')
  • 确认传入的路径指向具体的Excel文件,不是文件所在的上级文件夹

多工作表加载正确写法

read_excel 默认仅加载第一个工作表,要读取多表必须显式传sheet_name参数:

  1. 读取单个指定工作表
import pandas as pd
# 按工作表名称读取
df = pd.read_excel(
    '你的文件路径.xlsx',
    sheet_name='销售数据表', # 替换成你要读的实际表名
    engine='openpyxl' # 显式指定解析引擎,避免自动识别失败
)

# 按工作表索引读取(索引从0开始计数,0对应第一个工作表)
df = pd.read_excel(
    '你的文件路径.xlsx',
    sheet_name=2, # 读取第三个工作表
    engine='openpyxl'
)
  1. 一次性读取全部工作表
    传入sheet_name=None时,方法会返回字典结构,key为工作表名,value为对应表的DataFrame对象:
import pandas as pd
all_sheet_map = pd.read_excel(
    '你的文件路径.xlsx',
    sheet_name=None,
    engine='openpyxl'
)

# 遍历所有工作表内容
for sheet_name, df in all_sheet_map.items():
    print(f'===== 工作表:{sheet_name} 预览 =====')
    print(df.head())

常见报错排查

  • 报PermissionError:先关闭本地正在打开的对应Excel文件,文件被系统占用时无法读取
  • 报FileNotFoundError:直接复制文件资源管理器地址栏的完整路径填入,不要手动拼写路径避免字符错误
  • 报引擎不兼容错误:根据文件格式显式传入对应engine参数即可

内容的提问来源于stack exchange,提问作者Attitude Black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:18:31