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

如何使用Openpyxl实现色阶条件格式并应用到指定单元格范围

Openpyxl实现色阶条件格式的操作方法

openpyxl已内置色阶(ColorScale)对应的条件格式规则,无需额外依赖,可直接按以下步骤操作:


核心步骤

  1. 导入对应模块
    需要先引入色阶规则类:
from openpyxl.formatting.rule import ColorScaleRule
  1. 自定义色阶规则
    支持2色阶、3色阶两种模式,可自行调整节点判定规则和对应颜色:
# 示例1:3色阶规则(最小值绿、50百分位黄、最大值红)
color_scale_3 = ColorScaleRule(
    start_type='min',
    start_color='63BE7B',
    mid_type='percentile',
    mid_value=50,
    mid_color='FFEB84',
    end_type='max',
    end_color='F8696B'
)

# 示例2:2色阶规则(最小值蓝、最大值白)
color_scale_2 = ColorScaleRule(
    start_type='min',
    start_color='4472C4',
    end_type='max',
    end_color='FFFFFF'
)

参数说明:

  • 节点类型(start_type/mid_type/end_type)可选值:min(范围最小值)、max(范围最大值)、num(固定数值)、percent(百分比)、percentile(百分位)、formula(自定义公式)
  • 颜色参数支持传入十六进制RGB/ARGB色值
  1. 应用到指定单元格范围
    调用工作表的conditional_formatting.add方法绑定规则和范围即可,范围支持常规Excel单元格表示法:
# 应用到A1到A100的单列范围
ws.conditional_formatting.add('A1:A100', color_scale_3)

# 应用到B2到Z50的跨列范围
ws.conditional_formatting.add('B2:Z50', color_scale_2)

完整可运行示例

from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule

# 初始化工作簿和工作表
wb = Workbook()
ws = wb.active

# 写入测试数据
for row in range(1, 21):
    ws[f'A{row}'] = row

# 创建色阶规则
rule = ColorScaleRule(
    start_type='min',
    start_color='63BE7B',
    mid_type='percentile',
    mid_value=50,
    mid_color='FFEB84',
    end_type='max',
    end_color='F8696B'
)

# 应用规则到A1:A20
ws.conditional_formatting.add('A1:A20', rule)

# 保存文件
wb.save('色阶效果测试.xlsx')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:15:05