Обновите файл Excel цветом

#python #openpyxl

#питон #openpyxl

Вопрос:

У меня есть 50 примеров, когда мне нужно, чтобы ячейки B7: AE15 были выделены желтым цветом. я определил cellrange_1 = [«B7″:»AE15»] Затем я попытался:

 for cell in cellrange_1:
     worksheet[cell].fill = PatternFill("solid",fgColor="00FFCC99")
 

Но это не работает.

Комментарии:

1. Я считаю , что вам следует назначить worksheet[cell].style.fill К. Кроме того, не забудьте позвонить workbook.save

2. Ха-ха, я помню эту вчерашнюю ошибку, еще раз спасибо. Но я не понимаю, какие изменения нужно внести. Я изменил его на worksheet[cell].style. fill = PatternFill(«solid», fgColor=»00FFCC99″), и я получаю сообщение об ошибке: «Объект кортежа не имеет стиля атрибута»

3. Этот диапазон ячеек не может работать.

Ответ №1:

Если вы хотите изменить цвет фона и шрифта:

 from openpyxl.styles import PatternFill

for col_range in range(1, 51):
  for row_range in range(7, 16):
    cell_title = sheet.cell(col_range, row_range)
    cell_title.fill = PatternFill(fill_type="solid", start_color="#00FFCC99", end_color="#00FFCC99")
 

В случае возникновения каких-либо вопросов вы можете воспользоваться документами OpenPyXL: https://openpyxl.readthedocs.io/en/latest /

Ответ №2:

Попробуй это…

 for cell in cellrange_1:
   worksheet[cell].style.fill = PatternFill("solid",fgColor="00FFCC99")
 

А ниже приведен пример условного форматирования

 from openpyxl.styles import PatternFill, colors
from openpyxl.styles.differential import DifferentialStyle
from openpyxl.formatting.rule import Rule

red_background = PatternFill(bgColor=colors.RED)
diff_style = DifferentialStyle(fill=red_background)
rule = Rule(type="expression", dxf=diff_style)
rule.formula = ["$H1<3"]
sheet.conditional_formatting.add("A1:O100", rule)
workbook.save("sample_conditional_formatting.xlsx")
 

Комментарии:

1. Привет, Хитеш, я только что попробовал это, и я получаю сообщение об ошибке «Кортеж» объект не имеет атрибута «стиль»; Я чувствую, что мне придется обновлять каждую ячейку по отдельности для этого цвета..