условное форматирование openpyxl с именованным стилем - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть именованный стиль, определенный с помощью:

style = openpyxl.styles.NamedStyle('style1')

style.fill = openpyxl.styles.PatternFill(patternType='solid', fill_type='solid', fgColor='BB0000')

style.border = openpyxl.styles.Border(left=openpyxl.styles.borders.Side(style='thin'), 
                                      right=openpyxl.styles.borders.Side(style='thin'), 
                                      bottom=openpyxl.styles.borders.Side(style='thin'),
                                      top=openpyxl.styles.borders.Side(style='thin') )

Я хочу иметь условный формат, основанный на значении ячейки, который использует этот стиль.

Я могу сделать что-то вроде:

rule = openpyxl.formatting.rules.CellIsRule(operator='lessThan', formula=['0']', ...)

Но это не похоже на именованный стиль.Он принимает либо отдельный стиль, либо заливку и границу как отдельные вещи ...

1 Ответ

0 голосов
/ 12 декабря 2018

Нельзя использовать именованные стили с условными форматами.Существуют тонкие различия в том, как они применяются, но они также реализованы и хранятся по-разному.Просто создайте DifferentialStyle таким же образом, как и именованный стиль, и установите его как dxf для правила.Вы, вероятно, можете сделать это очень легко:

dxf = DifferentialStyle(**dict(style))

...