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

如何用Python查找单元格含特定内容的Excel工作表

查找Excel中包含指定内容的工作表(使用Pandas)

直接上可行的解决方案,核心逻辑是遍历所有工作表,检查单元格内容是否匹配目标词汇:

代码实现

import pandas as pd

# 替换为你的Excel文件路径和要查找的关键词
excel_file = "your_file.xlsx"
target_term = "work"

# 读取所有工作表,返回{表名: DataFrame}的字典
all_worksheets = pd.read_excel(excel_file, sheet_name=None, engine="openpyxl")

matching_sheets = []

for sheet_name, df in all_worksheets.items():
    # 只筛选字符串类型的列,避免非字符串列调用str方法报错
    string_columns = df.select_dtypes(include=["object"]).columns
    if not string_columns.empty:
        # 检查是否有单元格包含目标词汇,忽略大小写、跳过空值
        has_match = df[string_columns].apply(
            lambda col: col.str.contains(target_term, case=False, na=False)
        ).any().any()
        if has_match:
            matching_sheets.append(sheet_name)

# 输出结果
print("符合条件的工作表:")
print(matching_sheets)

关键细节说明

  • sheet_name=None:让Pandas一次性读取所有工作表,返回字典结构方便遍历
  • select_dtypes(include=["object"]):仅处理字符串列,避免数字、日期等类型触发错误
  • case=False:忽略大小写匹配,若需要严格区分大小写可删除该参数
  • na=False:将空值视为不匹配,防止空值引发的异常
  • 两次.any():第一次判断单列内是否存在匹配项,第二次判断整个工作表是否有至少一列存在匹配

注意事项

  • 若处理.xls格式文件,需将engine参数改为xlrd(注意xlrd仅支持xls格式)
  • 若工作表数据量极大,可考虑只检查前N行(如df.head(100))提升效率,适合快速排查
  • 如需精确匹配(单元格内容完全等于目标词汇),将str.contains替换为str.eq(target_term)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:20:28