You need to enable JavaScript to run this app. 如何使用xlsx根据单元格Passed/Failed等内容自动设置对应背景色
优惠活动
大模型
产品
解决方案
定价
更多

如何使用xlsx根据单元格Passed/Failed等内容自动设置对应背景色

实现方案

你提到的需求完全可以实现,以下是两种常见场景的落地代码:

场景1:写入单元格内容时同步设置背景色(适配你的伪代码逻辑,使用xlsxwriter库)

写入内容时直接绑定对应格式,比后续遍历检测效率更高,可直接对齐你的预期逻辑:

import xlsxwriter

# 创建工作簿和工作表
workbook = xlsxwriter.Workbook('测试结果.xlsx')
worksheet = workbook.add_worksheet('Sheet1')

# 预定义不同状态对应的单元格格式
pass_format = workbook.add_format({'bg_color': 'green'})
fail_format = workbook.add_format({'bg_color': 'red'})
# 未测试状态如果需要特殊格式也可新增,比如灰色背景
untested_format = workbook.add_format({'bg_color': 'gray'})

# 写入内容时直接指定对应格式
worksheet.write('B2', 'Passed', pass_format)
worksheet.write('B3', 'Failed', fail_format)
worksheet.write('B4', 'Untested', untested_format)

workbook.close()

场景2:读取已存在的Excel文件,检测内容后批量设置背景色(使用openpyxl库)

如果是已经生成完成的表格,需要事后批量调整格式,可使用该方案:

from openpyxl import load_workbook
from openpyxl.styles import PatternFill

# 加载已有的工作簿
wb = load_workbook('测试结果.xlsx')
ws = wb['Sheet1']

# 定义填充样式,颜色使用RRGGBB格式的十六进制编码
green_fill = PatternFill(start_color='00FF00', end_color='00FF00', fill_type='solid')
red_fill = PatternFill(start_color='FF0000', end_color='FF0000', fill_type='solid')
gray_fill = PatternFill(start_color='C0C0C0', end_color='C0C0C0', fill_type='solid')

# 遍历需要检测的单元格范围,示例为B列第2行到第100行
for cell in ws['B2:B100']:
    cell_val = cell[0].value
    if cell_val == 'Passed':
        cell[0].fill = green_fill
    elif cell_val == 'Failed':
        cell[0].fill = red_fill
    elif cell_val == 'Untested':
        cell[0].fill = gray_fill

# 保存修改后的文件
wb.save('测试结果_已标注.xlsx')

注意:openpyxl使用的十六进制颜色值不需要加#前缀,6位字符顺序为红、绿、蓝,和常规网页色值规则一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 05:27:00