Openpyxl: неожиданный сбой с функцией CellIsRule - PullRequest
0 голосов
/ 26 апреля 2018

Я открываю файл Excel и применяю условное форматирование:

from openpyxl import *
from openpyxl.formatting.rule import CellIsRule

os.chdir(r'C:\Users\myfolder')

wb= load_workbook('myfile.xlsx')
ws = wb.active

#Conditional formatting
ws.conditional_formatting.add('S3:S89', formatting.CellIsRule(operator='equal', formula=['1'], font='#FF0000')) #Red

Это было сделано на основе этого ответа . Тем не менее, я получаю эту ошибку:

AttributeError                            Traceback (most recent call last)
<ipython-input-190-fb94e6065444> in <module>()
---> 10 ws.conditional_formatting.add('S3:S89', formatting.CellIsRule(operator='equal', formula=['1'], font='#FF0000')) #Red

AttributeError: module 'openpyxl.formatting' has no attribute 'CellIsRule'

Что происходит? Я использую openpyxl версию 2.4.8, хотя этот ответ был предложен для версии 2.2.6. Тем не менее, функция CellIsRule, кажется, все еще присутствует. Чего мне не хватает?

1 Ответ

0 голосов
/ 26 апреля 2018

Попробуйте следующий подход:

import openpyxl

os.chdir(r'C:\Users\myfolder')

wb = openpyxl.load_workbook('myfile.xlsx')
ws = wb.active

#Conditional formatting
red_font = openpyxl.styles.Font(size=14, bold=True, color='9c0103')
ws.conditional_formatting.add('S3:S89', openpyxl.formatting.rule.CellIsRule(operator='equal', formula=['1'], font=red_font)) #Red
...