用python处理excel的基本语法_Python操作Excel学习笔记(28):条件格式
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):条件格式相关推荐
- python xlwt xlrd模块详解_python操作excel之xlrd、xlwt模块详解
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 可从这里下载https://pypi.python.org/pypi.下面分别记录 ...
- 用python处理excel的基本语法_Python对Excel操作详解
Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...
- python定义函数的组成部分有_Python文档学习笔记(4)--定义函数
定义函数 关键字 def 引入函数的定义.其后必须跟有函数名和以括号标明的形式参数列表.组成函数体的语句从下一行开始,且必须缩进. 执行 一个函数会引入一个用于函数的局部变量的新符号表. 因此,在函数 ...
- python语句x 3 3执行_Python 3.x 学习笔记--杂
在交互式环境中,编译器会有一个小整数池的概念,会把(-5,256)间的数预先创建好,而当a和b超过这个范围的时候,两个变量就会指向不同的对象了,因此地址也会不一样, http://www.runoob ...
- python爬取京东手机数据_Python数据爬虫学习笔记(21)爬取京东商品JSON信息并解析...
一.需求:有一个通过抓包得到的京东商品的JSON链接,解析该JSON内容,并提取出特定id的商品价格p,json内容如下: jQuery923933([{"op":"75 ...
- python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...
python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...
- 《Python核心编程(第3版)》学习笔记及书评
<Python核心编程(第3版)>学习笔记 文章目录 <Python核心编程(第3版)>学习笔记 写在前面 1. 正则表达式 1.1 常用语法 1.2 re模块 2. 网络编程 ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- Python学习笔记28:从协议到抽象基类
Python学习笔记28:从协议到抽象基类 今后本系列笔记的示例代码都将存放在Github项目:https://github.com/icexmoon/python-learning-notes 在P ...
最新文章
- vary渲染图没了_云渲染哪个好用?云渲染平台对比
- 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库...
- mac编辑器coda使用小贴条
- 把设备分享给每个Docker Container
- java多线程之Semaphore信号量详解
- 四元数左乘右乘_复数/四元数和转动/转动群
- 百度安装php环境,Centos下安装类百度文库环境
- 【题解】【中国大学MOOC】(北京大学)人工智能与信息社会测验——8人工智能与人类社会未来
- 判断一个整数能否同时被3和5整除
- 低代码平台有哪些?值得推荐的低代码公司?
- PBOC卡片应用分析(四)非接触式IC卡规范
- 使用STM32CubeMX 快速生成 USB HID 工程 - STM32F107VCT6
- oppo手机android系统进程,OPPO手机应用软件怎么在后台运行?OPPO软件后台运行两种方法...
- 数仓建设之指标体系搭建
- 机器学习基础篇(四)——交叉验证
- 专注云原生落地,星汉未来成为开源 GitOps 产业联盟会员
- Run-length encoding
- ibm刀片服务器虚拟化,IBM刀片服务器虚拟化方案
- 华为云hica学习笔记
- 算法中的递归和尾递归
热门文章
- Android5.0后外置SDCard读写
- python爬取微博评论点赞数_python 爬虫 爬微博 分析 数据
- Shiro和Spring Security的简单对比
- 论文笔记 EMNLP 2021|Modeling Document-Level Context for Event Detection via Important Context Selection
- U盘文件格式化后怎么快速恢复
- 以太坊区块链快速入门
- 移动通讯技术的发展历史
- 大一Web课程设计 基于HTML家乡主题网页项目的设计与实现——中国牡丹之都山东菏泽(6页)
- 在挑战中成长:CTO的生存与发展之道
- 五子棋AI - 蒙特卡洛树搜索