【问题标题】:Applying conditional formatting to non-contiguous selections in openpyxl将条件格式应用于openpyxl中的非连续选择
【发布时间】:2016-03-10 22:44:56
【问题描述】:

在 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"

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

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

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

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

    range_string = "A1:D10 A20:D30"
    

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

    【讨论】:

    • 非常感谢。它对我有用。我试过“,”和“;”。但空间运行良好。
    【解决方案2】:

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

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

    我从未在源文件中看到不连续的范围,所以我怀疑如果您传入多个范围,Excel 就会这样做。

    【讨论】:

    • 感谢您的回复。问题是当我这样做时,色阶并没有应用于所有选择,我只是得到了一堆不同的区域,每个区域都有自己的色阶。我想要在不同的单元格区域上使用连续的色阶。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    相关资源
    最近更新 更多