Python XlsxWriter - 条件格式
Excel 使用条件格式 根据用户定义的条件更改范围内单元格的外观。 从条件格式菜单中,可以定义涉及各种类型值的标准。
在下面显示的工作表中,A 列具有不同的数字。 小于 50 的数字以红色字体颜色和灰色背景颜色显示。
这是通过在下面定义条件格式规则来实现的 −
conditional_format() 方法
在 XlsxWriter 中,Worksheet 类中定义了一个 conditional_format() 方法。 为实现上述结果,调用了 conditional_format() 方法,代码如下 −
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') ws = wb.add_worksheet() data=[56,95,63,34,81,47,74,5,99,12] row=0 for num in data: ws.write(row,0,num) row+=1 f1 = wb.add_format({'bg_color': '#D9D9D9', 'font_color': 'red'}) ws.conditional_format( 'A1:A10',{ 'type':'cell', 'criteria':'<', 'value':50, 'format':f1 } ) wb.close()
参数
conditional_format() 方法的第一个参数是单元格范围,第二个参数是条件格式选项的字典。
options 字典配置条件格式化规则,参数如下 −
type 选项是必需的参数。 它的值可以是单元格、日期、文本、公式等。每个参数都有子参数,例如条件、值、格式等。
Type 是最常见的条件格式化类型。 当基于简单标准将格式应用于单元格时使用它。
Criteria 参数设置评估单元格数据的条件。 除了 between 和 not between 运算符之外的所有逻辑运算符都是 criteria 参数的可能取值。
Value 参数是构成规则的条件的操作数。
Format 参数是 Format 对象(由 add_format() 方法返回)。 这定义了要应用于满足条件的单元格的格式特征,例如字体、颜色等。
date 类型与单元格类型相似,并使用相同的条件和值。 但是,value 参数应作为 datetime 对象给出。
text 类型指定 Excel 的"特定文本"样式条件格式。 它用于使用条件和值参数进行简单的字符串匹配。
示例
当使用 formula 类型时,条件格式取决于用户定义的公式。
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') ws = wb.add_worksheet() data = [ ['Anil', 45, 55, 50], ['Ravi', 60, 70, 80], ['Kiran', 65, 75, 85], ['Karishma', 55, 65, 45] ] for row in range(len(data)): ws.write_row(row,0, data[row]) f1 = wb.add_format({'font_color': 'blue', 'bold':True}) ws.conditional_format( 'A1:D4', { 'type':'formula', 'criteria':'=AVERAGE($B1:$D1)>60', 'value':50, 'format':f1 }) wb.close()
输出
使用 MS Excel 打开生成的工作簿。 我们可以看到满足上述条件的行根据格式对象显示为蓝色。 条件格式规则管理器还显示了我们在上面的代码中设置的标准。