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

Python Openpyxl匹配列表值设置单元格加粗无效问题(MacOS)

问题原因

你的代码存在3个核心逻辑错误,导致加粗样式根本没有被正确应用到目标单元格:

  • 循环变量覆盖+取值结构错误:ws['A1':'A44']返回的是嵌套元组结构,外层对应每一行,内层是该行选中列的单元格对象(A列单区域切片下,每个内层元组仅包含1个A列单元格)。你写for words in A直接把原本存储关键词列表的words变量覆盖成了行元组,完全丢失了要匹配的关键词内容。
  • 单元格对象未定义:循环里直接调用cell变量,但你从来没在循环逻辑里声明、取出过单个单元格对象,正常这段代码应该抛出NameError才对,能无报错运行大概率是之前运行环境残留了同名cell变量,实际根本没遍历到目标区域的单元格。
  • 匹配逻辑不符合需求:你要实现的是单元格内容包含关键词列表内的任意字符串,原代码写的是对象全等判断,完全匹配不到目标内容。
修正后可运行代码

先确保已经正确导入Font类,再按如下逻辑编写:

from openpyxl.styles import Font

# 预定义加粗样式
header_style = Font(bold=True)
# 选中目标区域
target_range = ws['A1':'A44']
# 定义匹配关键词列表
keywords = ['Assets', 'Current Assets', 'Liabilities', 'Equity']

# 遍历区域:外层取每行的单元格元组
for row in target_range:
    # 取出当前行A列的单元格对象
    cell = row[0]
    # 跳过空单元格避免类型报错
    if cell.value is None:
        continue
    # 判断单元格内容是否包含任意一个关键词
    if any(keyword in str(cell.value) for keyword in keywords):
        cell.font = header_style

# 必须执行保存操作,所有修改才会写入文件
wb.save('你的目标文件路径.xlsx')
补充说明
  • 如果需要单元格值完全等于关键词才加粗,把判断条件替换为if str(cell.value).strip() in keywords即可
  • 不要在循环内重复创建Font样式对象,提前统一定义后复用即可,避免导出的Excel文件体积异常增大
  • 所有样式、内容修改完成后必须调用wb.save()写入磁盘,否则所有操作仅停留在内存中,打开原文件看不到任何变化

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:09:20