Python XlsxWriter - 条件格式



Excel 使用条件格式根据用户定义的条件更改某个区域中单元格的外观。从条件格式菜单中,可以定义涉及各种类型值的条件。

Conditional Formatting

在下图所示的工作表中,A 列包含不同的数字。小于 50 的数字显示为红色字体和灰色背景色。

Conditional Formatting1

这是通过定义以下条件格式规则实现的:

Conditional Formatting2

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() 方法的第一个参数是单元格区域,第二个参数是条件格式选项的字典。

选项字典使用以下参数配置条件格式规则:

type 选项是必需参数。其值为 cell、date、text、formula 等。每个参数都有子参数,例如 criteria、value、format 等。

  • Type 是最常见的条件格式类型。当根据简单条件将格式应用于单元格时,使用此类型。

  • Criteria 参数设置用于评估单元格数据的条件。除 between 和 not between 运算符外,所有逻辑运算符都是 criteria 参数的可能值。

  • Value 参数是构成规则的 criteria 的操作数。

  • Format 参数是 Format 对象(由add_format() 方法返回)。这定义了要应用于满足条件的单元格的格式功能,例如字体、颜色等。

date 类型类似于 cell 类型,并使用相同的 criteria 和 values。但是,value 参数应作为datetime 对象给出。

text 类型指定 Excel 的“特定文本”样式条件格式。它用于使用 criteria 和 value 参数执行简单的字符串匹配。

示例

当使用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 打开结果工作簿。我们可以看到满足上述条件的行根据格式对象显示为蓝色。条件格式规则管理器还显示了我们在上述代码中设置的条件。

Parameters
广告

© . All rights reserved.