如何使用Openpyxl实现色阶条件格式并应用到指定单元格范围
Openpyxl实现色阶条件格式的操作方法
openpyxl已内置色阶(ColorScale)对应的条件格式规则,无需额外依赖,可直接按以下步骤操作:
核心步骤
- 导入对应模块
需要先引入色阶规则类:
from openpyxl.formatting.rule import ColorScaleRule
- 自定义色阶规则
支持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色值
- 应用到指定单元格范围
调用工作表的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
相关产品推荐
相关产品推荐

