openpyxl: условное форматирование с COUNTIF - PullRequest
0 голосов
/ 11 февраля 2020

Я использую openpyxl для создания листа Excel, который мне нужно условно отформатировать на основе, если определенная текстовая строка найдена в ячейке. Например, я хочу посмотреть, начинается ли ячейка с "ok:", поэтому мое уравнение равно =COUNTIF(A1,"ok:*")>0. Это работает в Excel. Однако следующий код Python в openpyxl приводит к тому, что Excel говорит, что лист поврежден:

redFill = PatternFill(start_color='EE1111', end_color='EE1111', fill_type='solid')
ws.conditional_formatting.add('E1:E10', FormulaRule(formula=['=COUNTIF(A1,"ok:*")>0'],fill=redFill))

Как правильно добавить условие COUNTIF в лист Excel с openpyxl?

1 Ответ

0 голосов
/ 11 февраля 2020

Оказывается, вы не можете использовать COUNTIF. Вот код, который работает:

red_text = Font(color="9C0006")
red_fill = PatternFill(bgColor="FFC7CE")
dxf = DifferentialStyle(font=red_text, fill=red_fill)
rule = Rule(type="containsText", operator="containsText", text="highlight", dxf=dxf)
rule.formula = ['NOT(ISERROR(SEARCH("ok:*",A1)))']
wsNonDebug.conditional_formatting.add('A1:F40', rule)
...