【问题标题】:How to use a placeholder with openpyxl conditional formatting?如何使用带有 openpyxl 条件格式的占位符?
【发布时间】:2017-06-23 22:48:30
【问题描述】:

我对 Python 还是比较陌生,但玩了一段时间,无法理解它。

我有一个使用 Openpyxl 将数据返回到电子表格的查询,并且我想有条件地格式化该电子表格。如果我输入确切的行数,我可以做到这一点,但行数因查询而异,所以我试图让它只条件格式我拥有的行数,所以我需要一个占位符作为你可以在下面看到。我使用变量num_of_rows 返回行数。我想说:

ws.conditional_formatting.add(('H3:H%d', CellIsRule(operator='lessThan', formula=['10'],
                               stopIfTrue=True, fill=red_fill)) % (num_of_rows,))

但我收到此错误:

ws.conditional_formatting.add(('H3:H%d',
CellIsRule(operator='lessThan', formula=['10'], stopIfTrue=True,
fill=red_fill)) % (15,))
TypeError: unsupported operand type(s) for %: 'tuple' and 'tuple'

即使我将% 之后的num_of_rows 变量更改为一个数字,比如15,它也会返回相同的错误。如何在此处使用占位符?

【问题讨论】:

    标签: python typeerror openpyxl


    【解决方案1】:

    试试这个代码

    ws.conditional_formatting.add(('H3:H%d' % (num_of_rows,), CellIsRule(operator='lessThan', formula=['10'], stopIfTrue=True, fill=red_fill)))

    原因是您必须在字符串之后使用 % 运算符,但您尝试在 ws.conditional_formatting.add() 函数上使用它。

    【讨论】:

    • 天啊!在我发布它之后就想通了,这正是我为让它工作所做的。非常感谢!
    • FWIW 使用字符串 .format() 方法优于 printf 格式。
    猜你喜欢
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2019-09-15
    • 2014-01-05
    相关资源
    最近更新 更多