学习Excel技术,关注微信公众号:

excelperfect

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

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

>>>fromopenpyxl.formatting importRule

>>>fromopenpyxl.styles importFont, PatternFill,Border

>>>fromopenpyxl.styles.differentialimportDifferentialStyle

>>>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.formatting.ruleimport ColorScale,FormatObject

>>>from openpyxl.styles import Color

>>>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)

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

>>>fromopenpyxl.formatting.rule importRule

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

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

>>>fromopenpyxl.formatting.rule importColorScaleRule

>>>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五象限图”。

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

>>>fromopenpyxl.formatting.rule importIconSet, FormatObject

>>>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)

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

>>>fromopenpyxl.formatting.rule importRule

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

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

>>>fromopenpyxl.formatting.rule importIconSetRule

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

DataBar(数据条)

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

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

>>>fromopenpyxl.formatting.ruleimport DataBar,FormatObject

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

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

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

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

>>>fromopenpyxl.formatting.rule import Rule

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

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

>>>fromopenpyxl.formatting.rule importDataBarRule

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

start_value=10,

end_type='percentile',

end_value='90',

color="FF638EC6",

showValue="None",

minLength=None,

maxLength=None)

标准条件格式

标准条件格式有:平均值

百分比

唯一值或重复值

等级

示例

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

fromopenpyxl import Workbook

from openpyxl.styles import Color, PatternFill, Font, Border

from openpyxl.styles.differential import DifferentialStyle

fromopenpyxl.formatting.rule import ColorScaleRule,CellIsRule, FormulaRule

from openpyxl.formatting import Rule

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让工作自动化_python操作excel让工作自动化

    某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...

  2. python做excel表格代码_python操作excel表格

    我们在写测试用例的时候,是创建一个表格.xlsx,然后把各种条件加到这张表格中去,所以,如何对excel表格操作,是相当重要的一环,那么,接下来,这篇博客就直接教会大家如何通过python去处理平时工 ...

  3. python excel操作单元格_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  4. python excel详解_python操作excel详解

    前提: python操作excel需要使用的模块有xlrd.xlwt.xlutils.对excel进行读.写.更新操作.操作excel时需要先导入这些模块,demo如下: excel-读操作知识点: ...

  5. python做excel表格代码_python - 操作excel表格

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  6. python表格处理工具_python 操作excel表格的方法

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  7. python操纵excel的方法_python操作Excel的几种方式

    Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 首先你的本地要有包文件,安装上面的包文件如下图 1.xlrd主要是用来读取exce ...

  8. python数字求和程序_python操作excel求和

    这里介绍如何用python来自动完成我们的excel工作. 本文的目的是展示一些常见的Excel任务,以及如何在python pandas中执行类似的任务.例子微不足道,但重要的是通过这个例子来循序渐 ...

  9. python测试自动化封装_python接口自动化学习笔记(封装获取测试数据方法)

    本篇文章是接于python接口自动化学习笔记(封装方法用于读取excel) 后的拓展,讲解在封装完成excel的数据读取代码后,如何在data层进行使用 首先,我准备了这样一个excel表格用以存储测 ...

  10. 对python的评价语_Python自然语言处理学习笔记之评价(evaluationd)

    对模型的评价是在test set上进行的,本文首先介绍测试集应该满足的特征,然后介绍四种评价方法. 一.测试集的选择 1.首先,测试集必须是严格独立于训练集的,否则评价结果一定很高,但是虚高,不适用于 ...

最新文章

  1. Go在Ubuntu 14.04 64位上的安装过程
  2. Go - 反射中 函数 和 方法 的调用 - v.Call()
  3. ROS Gazebo(五):ros_control和gazebo仿真总结
  4. Releases 31 Authoritative Schedule,等10月29日发布了~~~
  5. Sql Server 2008 精简版(Express)和管理工具的安装以及必须重新启动计算机才能安装 SQLServer的问题和第一次使用sqlexpress的连接问题
  6. java中flush 函数,Java DataOutputStream.flush()类型
  7. PHP——访问网站根目录解决方案
  8. cisco路由器基本实验之九 PAT的配置(Packet Tracer)
  9. mysql经典面试题
  10. 【iHMI43 4.3寸液晶模块】demo例程(版本1.02)发布
  11. [react] 你知道Virtual DOM的工作原理吗?
  12. window.event.srcElement在Firefox IE下的兼容问题
  13. sqlite expert 未找到提供程序。该程序可能未正确安装_SolidWorks2019安装过程中出现常见问题及解决方案...
  14. 游戏文案策划:资料推荐
  15. 原生安卓X86 TV安装配置
  16. ballerina 学习 三十二 编写安全的程序
  17. 关于Junit测试出现Class not found: “ “这个问题如何解决
  18. 【转】珍藏多年的素材,灵感搜寻网站
  19. Python 图片处理模块之PIL
  20. java删除确认_删除添加确认事件

热门文章

  1. 初一计算机知识点都教啥,10分钟试讲几个知识点?初中信息技术教师招聘面试试讲教案真题:补间动画...
  2. 结构化数据 VS 半结构化数据 VS 非结构化数据
  3. 杭州天目山路招PHP,杭州地铁3号线汽车西站站开始主体施工 天目山路部分路面要开挖了...
  4. TCP/IP(3)——IPV6
  5. DETR | 基于匈牙利算法的样本分配策略
  6. mshtml组件引用的问题 (转)
  7. 葡萄柚能放冰箱保存吗 葡萄柚怎么保存时间长
  8. “奶茶第一股”会花落“草根品牌”蜜雪冰城吗?
  9. 对话杨宁:巨头搞不成区块链,落地的最大阻碍是“习惯”
  10. 硬盘性能测试DD命令详解