У меня есть электронная таблица, которую я создаю с помощью openpyxl, которая содержит ряд системных проверок. На основании правил; слова Pass, Fail или Informational вставлены в столбец E в моей электронной таблице. Я хотел бы использовать Openpyxl для условного форматирования заполнения электронной таблицы на основе значения Pass или Fail. Что-то вроде зеленого для прохождения и красного для неудачи.
Мой текущий код для openpyxl:
wb = Workbook()
ws = wb.active
ws.freeze_panes = ws.cell('A3')
ws.title = 'Best Practice Report for XXX'
ws['A1'] = 'Best Practice Report for XXX %s' % curdate
ws['A2'] = 'IP Address/FQDN'
ws['B2'] = 'BP Number'
ws['C2'] = 'Title'
ws['D2'] = 'Priority'
ws['E2'] = 'Status'
ws['F2'] = 'Description'
a1 = ws['A1']
a1.font = Font(size=20)
redFill = PatternFill(start_color='FFEE1111', end_color='FFEE1111', fill_type='solid')
ws.conditional_formatting.add('E4:E1000', FormatRule(text=['Fail'], stopIfTrue=True, fill=redFill))
wb.save('bp--TESTresults.xlsx')
Моя проблема связана с правилом условного форматирования, я не могу найти хороших примеров условного форматирования на основе текста в ячейке.
Обновление
Благодаря ответу Чарли Кларка у меня все заработало. Создал два правила следующим образом.
ws.conditional_formatting.add('E4:E1000', FormulaRule(formula=['NOT(ISERROR(SEARCH("Pass",E4)))'], stopIfTrue=True, fill=greenFill))
ws.conditional_formatting.add('E4:E1000', FormulaRule(formula=['NOT(ISERROR(SEARCH("Fail",E4)))'], stopIfTrue=True, fill=redFill))