Python轻松实现在Excel工作表中应用条件格式

 更新时间:2026年05月01日 07:18:58   作者:用户835629078051  
在日常数据处理工作中,条件格式是一项非常实用的功能,本文将介绍如何使用 Python 和 Spire.XLS 库在 Excel 工作表中应用多种类型的条件格式,有需要的小伙伴库参考下

在日常数据处理工作中,条件格式是一项非常实用的功能。它可以根据单元格的内容自动应用特定的格式,帮助用户快速识别数据模式、突出显示关键信息或发现异常值。通过 Python 自动化实现条件格式,可以大幅提高数据处理效率,特别是在处理大量数据或需要批量生成报表的场景中。

本文将介绍如何使用 Python 和 Spire.XLS 库在 Excel 工作表中应用多种类型的条件格式,包括基于单元格值的格式、高亮重复值和唯一值、数据条可视化以及图标集等。

环境准备

首先,需要安装 Spire.XLS 库:

pip install Spire.XLS

安装完成后,即可开始编写代码来实现条件格式功能。

基于单元格值的条件格式

最基本的条件格式类型是根据单元格的数值来应用格式。例如,可以将大于某个阈值的单元格标记为红色,将小于某个阈值的单元格标记为绿色。

以下示例演示如何创建一个包含示例数据的工作表,并应用基于单元格值的条件格式:

from spire.xls import *
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 插入示例数据到 A1:C4 范围
sheet.Range["A1"].NumberValue = 582
sheet.Range["A2"].NumberValue = 234
sheet.Range["A3"].NumberValue = 314
sheet.Range["A4"].NumberValue = 50
sheet.Range["B1"].NumberValue = 150
sheet.Range["B2"].NumberValue = 894
sheet.Range["B3"].NumberValue = 560
sheet.Range["B4"].NumberValue = 900
sheet.Range["C1"].NumberValue = 134
sheet.Range["C2"].NumberValue = 700
sheet.Range["C3"].NumberValue = 920
sheet.Range["C4"].NumberValue = 450

# 设置行高和列宽
sheet.AllocatedRange.RowHeight = 15
sheet.AllocatedRange.ColumnWidth = 17

# 创建第一个条件格式规则:大于 800 的值显示为红色
xcfs1 = sheet.ConditionalFormats.Add()
xcfs1.AddRange(sheet.AllocatedRange)
format1 = xcfs1.AddCondition()
format1.FormatType = ConditionalFormatType.CellValue
format1.FirstFormula = "800"
format1.Operator = ComparisonOperatorType.Greater
format1.FontColor = Color.get_Red()
format1.BackColor = Color.get_LightSalmon()

# 创建第二个条件格式规则:小于 300 的值显示为绿色
xcfs2 = sheet.ConditionalFormats.Add()
xcfs2.AddRange(sheet.AllocatedRange)
format2 = xcfs2.AddCondition()
format2.FormatType = ConditionalFormatType.CellValue
format2.FirstFormula = "300"
format2.Operator = ComparisonOperatorType.Less
format2.FontColor = Color.get_Green()
format2.BackColor = Color.get_LightBlue()

# 保存文件
workbook.SaveToFile("CellValueFormatting.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

结果文档:

在这个示例中,我们使用了 ConditionalFormatType.CellValue 类型来创建基于单元格值的条件格式。通过设置 FirstFormula 指定阈值,使用 Operator 定义比较操作符(如 Greater、Less 等),然后设置字体颜色和背景颜色。这样可以直观地突出显示超出正常范围的数据。

高亮重复值和唯一值

在数据分析过程中,经常需要识别数据集中的重复项或唯一项。条件格式提供了专门的功能来实现这一点。

以下示例展示如何高亮显示重复值和唯一值:

from spire.xls import *
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# ===== 1. 写入示例数据 =====
data = [
    ["ID", "Name", "Value"],
    [1, "A", 10],
    [2, "B", 20],
    [3, "C", 10],
    [4, "D", 30],
    [5, "E", 40],
    [6, "F", 20],
    [7, "G", 50],
    [8, "H", 60],
    [9, "I", 70],
]

for r, row in enumerate(data, start=1):
    for c, value in enumerate(row, start=1):
        sheet.Range[r, c].Text = str(value)

# ===== 2. 设置列宽(可选,让演示更清晰)=====
sheet.Columns[0].ColumnWidth = 15
sheet.Columns[1].ColumnWidth = 20
sheet.Columns[2].ColumnWidth = 15

# ===== 3. 条件格式:C列(Value列)重复值 =====
xcfs = sheet.ConditionalFormats.Add()
xcfs.AddRange(sheet.Range["C2:C10"])
format1 = xcfs.AddCondition()
format1.FormatType = ConditionalFormatType.DuplicateValues
format1.BackColor = Color.get_IndianRed()

# ===== 4. 条件格式:C列唯一值 =====
xcfs1 = sheet.ConditionalFormats.Add()
xcfs1.AddRange(sheet.Range["C2:C10"])
format2 = xcfs1.AddCondition()
format2.FormatType = ConditionalFormatType.UniqueValues
format2.BackColor = Color.get_Yellow()

# ===== 5. 保存 =====
workbook.SaveToFile("HighlightDuplicateUnique.xlsx", ExcelVersion.Version2010)
workbook.Dispose()

结果文档:

这里使用了两种特殊的条件格式类型:ConditionalFormatType.DuplicateValues 用于标识重复值,ConditionalFormatType.UniqueValues 用于标识唯一值。这种功能在数据清洗和验证场景中非常有用,可以快速发现数据录入错误或异常记录。

应用数据条可视化

数据条是一种直观的可视化方式,它通过在单元格内显示条形图来表示数值的相对大小。数值越大,条形越长。

以下是应用数据条的示例代码:

from spire.xls import *
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 插入示例数据
sheet.Range["A1"].NumberValue = 582
sheet.Range["A2"].NumberValue = 234
sheet.Range["A3"].NumberValue = 314
sheet.Range["A4"].NumberValue = 50
sheet.Range["B1"].NumberValue = 150
sheet.Range["B2"].NumberValue = 894
sheet.Range["B3"].NumberValue = 560
sheet.Range["B4"].NumberValue = 900
sheet.Range["C1"].NumberValue = 134
sheet.Range["C2"].NumberValue = 700
sheet.Range["C3"].NumberValue = 920
sheet.Range["C4"].NumberValue = 450

# 设置单元格尺寸
sheet.AllocatedRange.RowHeight = 15
sheet.AllocatedRange.ColumnWidth = 17

# 添加数据条
xcfs = sheet.ConditionalFormats.Add()
xcfs.AddRange(sheet.AllocatedRange)
format = xcfs.AddCondition()
format.FormatType = ConditionalFormatType.DataBar
format.DataBar.BarColor = Color.get_CadetBlue()

# 保存文件
workbook.SaveToFile("DataBarsFormatting.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

结果文档:

数据条功能通过 ConditionalFormatType.DataBar 类型实现。可以通过 DataBar.BarColor 属性自定义条形的颜色。这种可视化方式特别适合用于快速比较一组数值的大小关系,无需创建单独的图表。

应用图标集

图标集是另一种强大的条件格式工具,它使用预定义的图标(如箭头、交通灯、旗帜等)来表示数据的状态或等级。

以下示例展示如何应用交通灯图标集:

from spire.xls import *
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 插入示例数据
sheet.Range["A1"].NumberValue = 582
sheet.Range["A2"].NumberValue = 234
sheet.Range["A3"].NumberValue = 314
sheet.Range["A4"].NumberValue = 50
sheet.Range["B1"].NumberValue = 150
sheet.Range["B2"].NumberValue = 894
sheet.Range["B3"].NumberValue = 560
sheet.Range["B4"].NumberValue = 900
sheet.Range["C1"].NumberValue = 134
sheet.Range["C2"].NumberValue = 700
sheet.Range["C3"].NumberValue = 920
sheet.Range["C4"].NumberValue = 450

# 设置单元格尺寸
sheet.AllocatedRange.RowHeight = 15
sheet.AllocatedRange.ColumnWidth = 17

# 添加图标集(三色交通灯)
xcfs = sheet.ConditionalFormats.Add()
xcfs.AddRange(sheet.AllocatedRange)
format = xcfs.AddCondition()
format.FormatType = ConditionalFormatType.IconSet
format.IconSet.IconSetType = IconSetType.ThreeTrafficLights1

# 保存文件
workbook.SaveToFile("IconSetsFormatting.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

结果文档:

图标集通过 ConditionalFormatType.IconSet 类型实现。IconSetType 枚举提供了多种图标样式选择,如 ThreeTrafficLights1(三色交通灯)、ThreeArrows(三向箭头)等。图标集常用于表示性能指标、状态评估或等级分类,使数据更加直观易懂。

实用技巧

在实际应用中,可以结合多种条件格式类型来实现更复杂的数据可视化需求:

  • 组合使用:可以在同一数据区域应用多个条件格式规则,每个规则针对不同的条件
  • 动态范围:使用 AllocatedRange 可以自动适应数据区域的大小,避免硬编码单元格范围
  • 颜色选择:选择对比度明显的颜色组合,确保格式化后的数据易于阅读
  • 性能考虑:对于大型数据集,应合理使用条件格式,避免过多的规则影响文件打开速度

总结

本文介绍了使用 Python 在 Excel 中应用条件格式的几种主要方法,包括基于单元格值的格式、重复值和唯一值高亮、数据条可视化以及图标集应用。通过这些技术,可以显著提升数据的可读性和分析效率。

条件格式不仅可以应用于简单的数值比较,还可以扩展到日期、文本等多种数据类型。结合 Python 的自动化能力,可以轻松实现批量数据处理和报表生成,为数据分析和业务决策提供有力支持。

到此这篇关于Python轻松实现在Excel工作表中应用条件格式的文章就介绍到这了,更多相关Python Excel应用条件格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python去掉文本中表情符号(Emoji)的四种方案

    使用Python去掉文本中表情符号(Emoji)的四种方案

    本文介绍了在自然语言处理、情感分析或数据清洗时,处理Emoji符号的方法,介绍了使用正则表达式、unicodedata库、emoji第三方库等方案,针对不同场景选择合适的方案,需要的朋友可以参考下
    2026-04-04
  • Python使用Turtle模块绘制国旗的方法示例

    Python使用Turtle模块绘制国旗的方法示例

    这篇文章主要给大家介绍了关于Python使用Turtle模块绘制国旗的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 从0到1使用python开发一个半自动答题小程序的实现

    从0到1使用python开发一个半自动答题小程序的实现

    这篇文章主要介绍了从0到1使用python开发一个半自动答题小程序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Python字典实现简单的三级菜单(实例讲解)

    Python字典实现简单的三级菜单(实例讲解)

    下面小编就为大家带来一篇Python字典实现简单的三级菜单(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 使用Python和wxPython开发的Windows进程管理工具

    使用Python和wxPython开发的Windows进程管理工具

    在日常使用 Windows 系统的过程中,我们经常会遇到需要批量管理进程的场景,Windows 自带的任务管理器虽然功能强大,但在批量管理进程方面存在明显不足,因此,本文给大家介绍了如何使用Python和wxPython开发的Windows进程管理工具,需要的朋友可以参考下
    2026-01-01
  • Python使用pyttsx3实现文本朗读功能的详细教程及避坑指南

    Python使用pyttsx3实现文本朗读功能的详细教程及避坑指南

    今天给大家带来一个非常实用的Python库——pyttsx3,它可以把文字转换成语音,让你的程序开口说话,这篇文章会从零开始,一步步教你搭建环境、编写代码,并分享一些踩坑经验,需要的朋友可以参考下
    2026-03-03
  • Python使用文件锁实现进程间同步功能【基于fcntl模块】

    Python使用文件锁实现进程间同步功能【基于fcntl模块】

    这篇文章主要介绍了Python使用文件锁实现进程间同步功能,结合实例形式分析了Python基于fcntl模块文件锁功能实现进程间同步的相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • python异常处理try的实例小结

    python异常处理try的实例小结

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。今天通过本文给大家介绍python异常处理try的实例详解,感兴趣的朋友一起看看吧
    2021-10-10
  • 详解python并发获取snmp信息及性能测试

    详解python并发获取snmp信息及性能测试

    本篇文章主要介绍了详解python并发获取snmp信息及性能测试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • python playwright之元素定位示例详解

    python playwright之元素定位示例详解

    这篇文章主要为大家介绍了python playwright之元素定位示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论