96SEO 2026-05-07 05:48 0
在日常的数据清洗、报表生成甚至 KPI kan板的搭建过程中,条件格式化往往是让枯燥数字瞬间活起来的魔法。手动点几下固然Ke以但面对上万行数据时那种“点到黑”的感觉真的会让人抓狂。幸好,Python Yi经把这件事变成了“一键搞定”。本文从零装配环境、写出Zui基础的示例,到进阶的重复值/唯一值高亮、数据条和图标集,一路陪你玩转 Excel 条件格式。

1️⃣ 批量自动化——一次脚本Ke以处理成百上千个工作簿,省掉手动操作的时间成本。 2️⃣ 可复用性强——把规则抽象成函数,以后只要改参数就Neng复用,无需每次重新敲公式。 3️⃣ 跨平台友好——无论 Windows、macOS 还是 Linux,只要装好解释器和库,就Neng跑。
Ru果你Yi经在使用 pandas 读取 CSV 或数据库,然后直接把 DataFrame 导出为 Excel,那再加上一层「自动上色」的功Neng,整个工作流会显得异常顺滑。下面我们先把必备工具装好。
openpyxl 是目前Zui流行的纯 Python 操作 .xlsx 的库,支持读写单元格、公式以及完整的条件格式对象。
pip install openpyxl -U
2️⃣ pandas + XlsxWriter
XlsxWriter 在写入速度和高级图表方面略胜一筹,但它只Neng创建新文件,不支持在Yi有文件上追加。因此,Ru果你的需求是「在Yi有报表上加颜色」,请选 openpyxl。
pip install pandas XlsxWriter -U
3️⃣ Spire.XLS for Python
Spire.XLS 是一款商业组件,提供了geng细腻的 API,但需要购买授权。下面会给出一个简短演示,仅供参考。
pip install spire.xls -U # 注意:国内镜像可Neng不可用,请自行配置源
三、一步步敲出Zui基础的「单元格值」条件格式
我们先创建一个包含随机数的工作表,然后把大于 80 的数标记为红底白字,小于 30 的数标记为绿底黑字。
import random
from openpyxl import Workbook
from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import Font, PatternFill
# ---------- 创建工作簿 ----------
wb = Workbook
ws = wb.active
ws.title = "成绩单"
# ---------- 填充演示数据 ----------
ws.append
for i in range:
ws.append])
# ---------- 定义两条规则 ----------
red_fill = PatternFill
green_fill = PatternFill
red_font = Font
green_font = Font
# 大于80 → 红底白字
ws.conditional_formatting.add(
"B2:B31",
CellIsRule(operator='greaterThan', formula=,
fill=red_fill, font=red_font)
)
# 小于30 → 绿底黑字
ws.conditional_formatting.add(
"B2:B31",
CellIsRule(operator='lessThan', formula=,
fill=green_fill, font=green_font)
)
wb.save
print
*温馨提示:Ru果你在 macOS 上运行,公式中的分号要换成逗号,否则 Excel 会报错。
四、进阶玩法——重复值 / 唯一值 / 数据条 / 图标集 4.1 高亮重复/唯一值DuplicateValuesRule/NoDuplicatesRule Neng帮你快速捕捉录入错误。下面演示把列 C 中出现两次以上的数字涂成淡红,把只出现一次的数字涂成淡黄。
from openpyxl.formatting.rule import DuplicateValuesRule, FormulaRule
dup_fill = PatternFill
uniq_fill = PatternFill
# 重复值 → 淡红
ws.conditional_formatting.add(
"C2:C50",
DuplicateValuesRule
)
# 唯一值 → 淡黄
uniq_formula = 'COUNTIF=1'
ws.conditional_formatting.add(
"C2:C50",
FormulaRule
)
wb.save
print
4.2 数据条让数字“一目了然”
Data Bar 会在单元格内部绘制一根渐变柱子,用来直观展示相对大小。这里我们给列 D 加上蓝色数据条:
from openpyxl.formatting.rule import DataBarRule
blue_bar = DataBarRule(start_type='num', start_value=0,
end_type='num', end_value=100,
color="638EC6") # 十六进制颜色
ws.conditional_formatting.add
wb.save
print
4.3 图标集 —— 三色交通灯或箭头指向
If you want something more visual than plain colors, icon sets are perfect.
from openpyxl.formatting.rule import IconSetRule
# 使用“三色交通灯”,阈值默认是分位数,你也Ke以自行设定。
icon_rule = IconSetRule(icon_set='trafficLights',
showValue=False) # 不显示原始数字,只显示灯
ws.conditional_formatting.add
wb.save
print
小技巧:Ru果你想让图标基于“百分比”而不是“分位”,记得把 'percentile'-type 参数补齐。
4.4 用 Spire.XLS 实现同样效果
If you already拥有 Spire.XLS 授权,Ke以省去繁琐的对象属性设置,一行代码搞定:
from spire.xls import Workbook
from spire.xls.common import ConditionalFormatType, Color
workbook = Workbook
sheet = workbook.Worksheets
# 写入简单数据
data = ]
for i in range:
data.append
for r,row in enumerate:
for c,val in enumerate:
sheet.Range.Text = str
# 重复值高亮 – 红色背景
cf_dup = sheet.ConditionalFormats.Add
cf_dup.AddRange
cond_dup = cf_dup.AddCondition
cond_dup.FormatType = ConditionalFormatType.DuplicateValues
cond_dup.BackColor = Color.get_IndianRed
# 唯一值高亮 – 黄色背景
cf_uni = sheet.ConditionalFormats.Add
cf_uni.AddRange
cond_uni = cf_uni.AddCondition
cond_uni.FormatType = ConditionalFormatType.UniqueValues
cond_uni.BackColor = Color.get_Yellow
workbook.SaveToFile
workbook.Dispose
print
五、常见坑 & 调试技巧
#公式分隔符差异: Windows 使用英文逗号“,”,macOS 则倾向使用分号“;”。遇到报错时先检查一下公式里的分隔符是否统一。
#范围引用错误: Excel 对 A1 表示法非常严格,一旦出现空格或多余引号就会导致规则失效。建议使用 "A1:B10" 而不是 'A1 : B10'.
#颜色不显示: 部分旧版 Excel 对自定义十六进制颜色不兼容,只Neng使用标准名称或 RGB 元组。例如 .
#保存冲突: Ru果脚本尝试覆盖正在打开的工作簿,会抛出 “PermissionError”。确保文件关闭或另存为新名字后再打开。
#调试建议: 打开生成的 .xlsx,用 “条件格式管理器” 检查实际生效规则;若发现没有生效,可将脚本中 `fill=` 或 `font=` 换成geng显眼的颜色 测试。
六、让代码为你的报表添彩从Zui基本的大于/小于着色,到高级的数据条与图标集,只要掌握了, 用 Python 给 Excel 加上一层智Neng视觉过滤其实并不难。尤其是在团队协作场景里一份自动化生成且自带「异常提示」的报告,比起手工点击gengNeng赢得老板赞许,也Neng让同事少走弯路。
祝你玩转 Python 条件格式,让枯燥数据瞬间闪光 ✨!Ru果觉得本文有帮助,请别忘了点赞或分享给需要的小伙伴哦~ 🚀🚀🚀
©2026 SEO 专家 版权所有 | 本文所有代码仅作学习交流使用,如有侵权请联系删除作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback