excelperfect

Excel支持3种不同类型的条件格式:内置、标准和自定义。内置条件格式将特定规则与预定义样式相组合。标准条件格式将特定规则与自定义格式相组合。此外,可以定义自定义公式来应用使用不同样式的自定义格式。

创建条件格式的基本语法为:

>>>fromopenpyxl.formattingimportRule

>>>fromopenpyxl.stylesimportFont, PatternFill,Border

>>>dxf = DifferentialStyle(font=Font(bold=True), fill=PatternFill(start_color='EE1111',end_color='EE1111'))

>>>rule = Rule(type='cellIs', dxf=dxf,formula=["10"])

内置格式

内置条件格式有:

ColorScale(色阶)

IconSet(图标集)

DataBar(数据条)

内置格式包含一系列格式设置,这些设置将类型与整数组合以进行比较。可能的类型有:“数字”、“百分比”、“最大值”、“最小值”、“公式”、“百分点值”。

ColorScale(色阶)

可以使用2种或3种颜色的色阶。2个色阶产生从一种颜色到另一种颜色的渐变,3个色阶使用额外颜色产生2种颜色渐变。

创建色阶规则的完整语法是:

>>>fromopenpyxl.stylesimportColor

>>>first = FormatObject(type='min')

>>>last = FormatObject(type='max')

>>>#颜色与格式对象匹配

>>>colors= [Color('AA0000'), Color('00AA00')]

>>>cs2 = ColorScale(cfvo=[first, last], color=colors)

>>>#三色阶将扩展序列

>>>mid = FormatObject(type='num', val=40)

>>>colors.insert(1, Color('00AA00'))

>>>cs3 = ColorScale(cfvo=[first, mid, last], color=colors)

>>>#创建使用色阶的规则

>>>rule = Rule(type='colorScale',colorScale=cs3)

下面是创建色阶规则的便利的方法:

>>>rule = ColorScaleRule(start_type='percentile',

start_value=10,

start_color='FFAA0000',

mid_type='percentile',

mid_value=50,

mid_color='FF0000AA',

end_type='percentile',

end_value=90,

end_color='FF00AA00')

IconSet(图标)

从下列图标集中选择:“3Arrows三向箭头”、“3ArrowsGray三向箭头(灰色)”、“3Flags三色旗”、“3TrafficLights1三色交通灯1”、“3TrafficLights2三色交通灯2”、“3Signs三标志”、“3Symbols三个符号”、“3Symbols2三个符号2”、“4Arrows四向箭头”、“4ArrowsGray四向箭头(灰色)”、“4RedToBlack红黑渐变”、“4Rating四等级”、“4TrafficLights四色交通灯”、“5Arrows五向箭头”、“5ArrowsGray五向箭头(灰色)”、“5Rating五等级”、“5Quarters五象限图”。

创建图标规则的完整语法是:

>>>first = FormatObject(type='percent', val=0)

>>>second = FormatObject(type='percent', val=33)

>>>third = FormatObject(type='percent', val=67)

>>>iconset = IconSet(iconSet='3TrafficLights1',cfvo=[first, second, third], showValue=None, percent=None,reverse=None)

>>>#将图标集赋给规则

>>>rule= Rule(type='iconSet',iconSet=iconset)

下面是创建图标集规则的便利方法:

>>>rule = IconSetRule('5Arrows','percent', [10, 20, 30, 40, 50], showValue=None, percent=None, reverse=None)

DataBar(数据条)

当前,openpyxl支持原始规范中定义的数据条,在以后的扩展中将会添加边框和方向。

创建数据条规则的完整语法是:

>>>first = FormatObject(type='min')

>>>second= FormatObject(type='max')

>>>data_bar= DataBar(cfvo=[first, second], color="638EC6",showValue=None, minLength=None, maxLength=None)

>>> #将数据条赋给规则

>>>rule= Rule(type='dataBar',dataBar=data_bar)

下面是创建数据条规则的便利方法:

>>>rule = DataBarRule(start_type='percentile',

start_value=10,

end_type='percentile',

end_value='90',

color="FF638EC6",

showValue="None",

minLength=None,

maxLength=None)

标准条件格式

标准条件格式有:

平均值

百分比

唯一值或重复值

等级

示例

下面是在单元格区域中应用条件格式的示例代码:

fromopenpyxlimportWorkbook

fromopenpyxl.stylesimportColor, PatternFill, Font, Border

fromopenpyxl.formattingimportRule

wb= Workbook()

ws= wb.active

#创建填充

redFill= PatternFill(start_color='EE1111',

end_color='EE1111',

fill_type='solid')

#添加二色色阶

#采用Excel'RRGGBB'样式的颜色

ws.conditional_formatting.add('A1:A10',

ColorScaleRule(start_type='min',

start_color='AA0000',

end_type='max',

end_color='00AA00')

)

#添加三色色阶

ws.conditional_formatting.add('B1:B10',

ColorScaleRule(start_type='percentile',

start_value=10,

start_color='AA0000',

mid_type='percentile',

mid_value=50,

mid_color='0000AA',

end_type='percentile',

end_value=90,

end_color='00AA00')

)

#基于单元格比较添加条件格式

# addCellIs(range_string, operator, formula, stopIfTrue, wb,font, border, fill)

#如果单元格小于'公式'则应用格式

ws.conditional_formatting.add('C2:C10',

CellIsRule(operator='lessThan',

formula=['C$1'],

stopIfTrue=True,

fill=redFill))

#如果单元格在'公式'之间则应用格式

ws.conditional_formatting.add('D2:D10',

CellIsRule(operator='between',

formula=['1','5'],

stopIfTrue=True,

fill=redFill))

#使用公式的格式

ws.conditional_formatting.add('E1:E10',

FormulaRule(formula=['ISBLANK(E1)'],

stopIfTrue=True,

fill=redFill))

#除了2个色阶和3个色阶外,格式规则还采用字体、边填和填充样式

myFont= Font()

myBorder= Border()

ws.conditional_formatting.add('E1:E10',

FormulaRule(formula=['E1=0'],

font=myFont,

border=myBorder,

fill=redFill))

#使用指定公式突出显示包含特定文本的单元格

red_text= Font(color="9C0006")

red_fill= PatternFill(bgColor="FFC7CE")

dxf= DifferentialStyle(font=red_text, fill=red_fill)

rule= Rule(type="containsText",operator="containsText",

text="highlight",dxf=dxf)

rule.formula= ['NOT(ISERROR(SEARCH("完美Excel",A1)))']

ws.conditional_formatting.add('A1:F40', rule)

wb.save("cftest.xlsx")

运行代码后的效果如下图1所示。

图1

用python处理excel的基本语法_Python操作Excel学习笔记(28):条件格式相关推荐

  1. python xlwt xlrd模块详解_python操作excel之xlrd、xlwt模块详解

    python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 可从这里下载https://pypi.python.org/pypi.下面分别记录 ...

  2. 用python处理excel的基本语法_Python对Excel操作详解

    Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...

  3. python定义函数的组成部分有_Python文档学习笔记(4)--定义函数

    定义函数 关键字 def 引入函数的定义.其后必须跟有函数名和以括号标明的形式参数列表.组成函数体的语句从下一行开始,且必须缩进. 执行 一个函数会引入一个用于函数的局部变量的新符号表. 因此,在函数 ...

  4. python语句x 3 3执行_Python 3.x 学习笔记--杂

    在交互式环境中,编译器会有一个小整数池的概念,会把(-5,256)间的数预先创建好,而当a和b超过这个范围的时候,两个变量就会指向不同的对象了,因此地址也会不一样, http://www.runoob ...

  5. python爬取京东手机数据_Python数据爬虫学习笔记(21)爬取京东商品JSON信息并解析...

    一.需求:有一个通过抓包得到的京东商品的JSON链接,解析该JSON内容,并提取出特定id的商品价格p,json内容如下: jQuery923933([{"op":"75 ...

  6. python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...

    python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...

  7. 《Python核心编程(第3版)》学习笔记及书评

    <Python核心编程(第3版)>学习笔记 文章目录 <Python核心编程(第3版)>学习笔记 写在前面 1. 正则表达式 1.1 常用语法 1.2 re模块 2. 网络编程 ...

  8. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  9. Python学习笔记28:从协议到抽象基类

    Python学习笔记28:从协议到抽象基类 今后本系列笔记的示例代码都将存放在Github项目:https://github.com/icexmoon/python-learning-notes 在P ...

最新文章

  1. vary渲染图没了_云渲染哪个好用?云渲染平台对比
  2. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库...
  3. mac编辑器coda使用小贴条
  4. 把设备分享给每个Docker Container
  5. java多线程之Semaphore信号量详解
  6. 四元数左乘右乘_复数/四元数和转动/转动群
  7. 百度安装php环境,Centos下安装类百度文库环境
  8. 【题解】【中国大学MOOC】(北京大学)人工智能与信息社会测验——8人工智能与人类社会未来
  9. 判断一个整数能否同时被3和5整除
  10. 低代码平台有哪些?值得推荐的低代码公司?
  11. PBOC卡片应用分析(四)非接触式IC卡规范
  12. 使用STM32CubeMX 快速生成 USB HID 工程 - STM32F107VCT6
  13. oppo手机android系统进程,OPPO手机应用软件怎么在后台运行?OPPO软件后台运行两种方法...
  14. 数仓建设之指标体系搭建
  15. 机器学习基础篇(四)——交叉验证
  16. 专注云原生落地,星汉未来成为开源 GitOps 产业联盟会员
  17. Run-length encoding
  18. ibm刀片服务器虚拟化,IBM刀片服务器虚拟化方案
  19. 华为云hica学习笔记
  20. 算法中的递归和尾递归

热门文章

  1. Android5.0后外置SDCard读写
  2. python爬取微博评论点赞数_python 爬虫 爬微博 分析 数据
  3. Shiro和Spring Security的简单对比
  4. 论文笔记 EMNLP 2021|Modeling Document-Level Context for Event Detection via Important Context Selection
  5. U盘文件格式化后怎么快速恢复
  6. 以太坊区块链快速入门
  7. 移动通讯技术的发展历史
  8. 大一Web课程设计 基于HTML家乡主题网页项目的设计与实现——中国牡丹之都山东菏泽(6页)
  9. 在挑战中成长:CTO的生存与发展之道
  10. 五子棋AI - 蒙特卡洛树搜索