要比较单元格与命名范围以进行条件格式化,可以使用以下步骤:
创建命名范围:
import openpyxl
workbook = openpyxl.Workbook()
sheet = workbook.active
# 创建命名范围
named_range = openpyxl.workbook.defined_name.DefinedName('my_range', attr_text='Sheet1!$A$1:$A$10')
workbook.defined_names.append(named_range)
设置条件格式化规则:
from openpyxl.styles import PatternFill
from openpyxl.styles.differential import DifferentialStyle
from openpyxl.formatting.rule import Rule
# 创建条件格式化规则
rule = Rule(type="expression", dxf=DifferentialStyle(fill=PatternFill(fgColor="00FF0000")))
rule.formula = ['$A1="Value"']
# 将条件格式化规则应用于命名范围
sheet.conditional_formatting.add('my_range', rule)
完整示例代码如下所示:
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles.differential import DifferentialStyle
from openpyxl.formatting.rule import Rule
workbook = openpyxl.Workbook()
sheet = workbook.active
# 创建命名范围
named_range = openpyxl.workbook.defined_name.DefinedName('my_range', attr_text='Sheet1!$A$1:$A$10')
workbook.defined_names.append(named_range)
# 创建条件格式化规则
rule = Rule(type="expression", dxf=DifferentialStyle(fill=PatternFill(fgColor="00FF0000")))
rule.formula = ['$A1="Value"']
# 将条件格式化规则应用于命名范围
sheet.conditional_formatting.add('my_range', rule)
workbook.save('output.xlsx')
这个示例代码将创建一个名为"my_range"的命名范围,范围为Sheet1的A1到A10单元格。然后,它创建一个条件格式化规则,该规则根据单元格的值是否为"Value"来设置填充颜色。最后,它将条件格式化规则应用于命名范围。完成后,结果将保存在名为"output.xlsx"的Excel文件中。