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

如何用Python的openpyxl批量为Excel中值为Alexandre的单元格着色?

解决openpyxl批量为指定值单元格着色的问题

你的问题出在两个地方:

  • 循环B列单元格时,你硬编码给固定的B3设置颜色,所以只有这一个单元格会变色
  • 尝试用ws['B']、ws['B:B']这类写法时,返回的是单元格组成的元组(tuple),元组没有fill属性,因此报错

修正后的代码

path_to_excel="doc.xlsx"
exemple=openpyxl.load_workbook(path_to_excel)

ws = exemple['Sheet1'] # 目标工作表名称

from openpyxl.styles import PatternFill

# 定义填充色(十六进制值)
Ok_couleur = PatternFill(patternType='solid', 
                         fgColor='94e0de')

# 遍历B列的每个单元格
for cell in ws['B']:
    if cell.value == "Alexandre":
        # 直接给当前匹配到的单元格设置填充色
        cell.fill = Ok_couleur

# 必须保存才能让修改生效
exemple.save(path_to_excel)

关键说明

  • 遍历ws['B']时,每个cell就是B列的单个单元格对象,直接操作它的fill属性即可
  • 一定要调用exemple.save(),否则修改只会停留在内存里,不会写入到Excel文件中

扩展:遍历整个工作表所有单元格

如果需要给整个表格里所有值为"Alexandre"的单元格着色,把循环改成这样:

# 遍历工作表所有行和单元格
for row in ws.iter_rows():
    for cell in row:
        if cell.value == "Alexandre":
            cell.fill = Ok_couleur

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:20:30