You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python遍历Excel工作表提取指定单元格值(忽略无关表)

解决Excel指定单元格值提取问题:忽略特定工作表并遍历获取

你的判断完全正确——确实需要遍历所有工作表,先过滤掉那4个无需关注的表,再在剩余工作表中提取目标单元格的值,最后统一收集并打印结果就行。我结合你给出的代码片段,帮你调整成完整的实现方案:

完整代码实现

import pandas as pd

# 第一步:把需要忽略的4个工作表名称填进这个列表(要和Excel里的名称完全匹配,包括大小写、空格)
ignore_sheets = ["无需关注表1", "无需关注表2", "无需关注表3", "无需关注表4"]
# 加载Excel文件
xl_file = pd.ExcelFile('Documents/CA= 7/Request/ScriptTestFiles/TestSheet.xlsx')

# 用来存储所有有效工作表的目标单元格值
target_results = []

# 遍历所有工作表
for sheet_name in xl_file.sheet_names:
    # 跳过需要忽略的工作表
    if sheet_name in ignore_sheets:
        continue
    # 读取当前工作表(用parse比重复调用read_excel更高效)
    df = xl_file.parse(sheet_name)
    # 提取目标单元格的值:这里以A1单元格为例(iloc是按行号、列号索引,从0开始计数)
    # 如果目标是B2单元格,就改成df.iloc[1, 1];如果知道列名,也可以用df.at[0, '列标题']
    cell_value = df.iloc[0, 0]
    # 把工作表名称和对应的值配对存储,方便后续查看来源
    target_results.append((sheet_name, cell_value))

# 打印最终收集到的结果
print("各有效工作表的目标单元格值:")
for sheet, value in target_results:
    print(f"{sheet}: {value}")

关键细节说明

  • 遍历与过滤:通过xl_file.sheet_names获取Excel里所有工作表的名称列表,再用if sheet_name in ignore_sheets跳过不需要的表,确保只处理目标工作表。
  • 单元格提取方式
    • iloc[行号, 列号]:适合知道单元格位置的情况(注意行号列号都是从0开始,比如A1对应(0,0),B2对应(1,1))。
    • at[行号, 列名]:如果知道目标单元格所在的列标题,比如要取"订单号"列第一行的值,就用df.at[0, '订单号']
  • 结果存储:把工作表名称和单元格值配对存入列表,打印时能清晰看到每个值来自哪个表,避免混淆。

注意事项

  • 一定要保证ignore_sheets里的名称和Excel中的工作表名称完全一致(包括大小写、空格、特殊字符),否则过滤会失效。
  • 如果目标单元格是合并单元格,pandas会把合并后的值放在合并区域的第一个单元格,所以要确认好对应的索引位置。
  • 如果工作表有表头,读取时默认会把第一行作为表头,此时iloc的行号要从表头的下一行开始计算(比如表头是第一行,那么数据行从0开始对应Excel的第二行)。

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

火山引擎 最新活动