将条件格式应用于openpyxl中的非连续选择

时间:2016-03-10 22:44:56

标签: python excel openpyxl

在Excel中,我可以在电子表格上进行多项选择,并使用条件格式来应用包含我所有选择的色标。

使用openpyxl,为了应用条件格式,我需要一个范围字符串:

rule = ColorScaleRule(start_type="min", start_color="FFFFFF", 
                      end_type="max", end_color="247CBD")
range_string = "A1:D10"
worksheet.conditional_formatting.add(range_string, rule)

如果我尝试使用范围字符串使用常规Excel表示法选择非连续区域,例如:

range_string = "A1:D10,A20:D30"

然后格式没有被应用,单元格保持未格式化。

有谁知道如何做到这一点?

2 个答案:

答案 0 :(得分:3)

使用空格作为分隔符而不是逗号。

range_string = "A1:D10 A20:D30"

这与XML中使用的格式相同,但与Excel本身不同,因此存在混淆。

答案 1 :(得分:0)

最简单的方法是将格式应用于不同的范围:

worksheet.conditional_formatting.add("A1:D10", rule)
worksheet.conditional_formatting.add("A20:D30, rule)

我从未在源文件中看到过不连续的范围,因此我怀疑这是Excel在传递多个范围时的作用。