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

如何使用Pandas仅读取Excel工作簿中的可见工作表?

解决方案

你写的两段代码存在两处核心错误:

  • 第一段代码:遍历获取到sheet对象后,错误将整个sheets列表追加到结果中,而非当前可见sheet的名称;且最终你要拿到的是表名才能给pandas读取,不是sheet对象
  • 第二段代码:xl.sheet_names返回的是字符串类型的工作表名称列表,字符串本身没有visibility属性,运行会直接报错

以下是可直接运行的正确代码:

import pandas as pd

xlFile = '/path/file_name.xlsx'
xl = pd.ExcelFile(xlFile)

list_of_visible_sheets = []
# 遍历所有sheet对象
for sheet in xl.book.sheets():
    # visibility值为0代表可见工作表,1为普通隐藏、2为深度隐藏
    if sheet.visibility == 0:
        # 追加当前可见sheet的名称
        list_of_visible_sheets.append(sheet.name)

# 打印所有可见工作表名称
print(list_of_visible_sheets)

# 如果需要直接读取所有可见工作表为DataFrame,可直接用以下代码生成字典,格式为{表名: 对应df}
df_dict = {sheet_name: xl.parse(sheet_name) for sheet_name in list_of_visible_sheets}

补充说明:

  • 该方法仅对.xlsx格式文件有效,如果读取的是.xls格式文件,需要额外安装xlrd库,对应判断逻辑略有差异
  • 如果需要用pd.read_excel批量读取,直接把得到的list_of_visible_sheets传给sheet_name参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:48:05