Как поменять цвет в ячейке с помощью openpyxl
Мне нужно в существующем файле .xlsx поменять только цвет текста определенной ячейки. Использовал такой код:
import openpyxl as opx
wb = opx.load_workbook('pattern.xlsx')
ws = wb.active
ws["A3"].font = opx.styles.Font(color='0070C0')
wb.save('pattern.xlsx')
Но это кроме цвета меняет и все остальное - название шрифта, размер и т.д. на значения по умолчанию. Подскажите, как оставить остальные параметры не тронутыми.
Ответы (2 шт):
Автор решения: vadim vaduxa
→ Ссылка
wb = openpyxl.Workbook()
cell = wb.active.cell(column=1, row=1)
cell.fill = openpyxl.styles.PatternFill(start_color='0070c1', end_color='0070c1', fill_type='solid')
cell.font = openpyxl.styles.Font(color='312BED', bold=False, italic=True, size=11)
Автор решения: Evgen Litvinov
→ Ссылка
Разобрался! Чтобы поменять цвет шрифта, нужно указывать все параметры иначе они установятся в значения по умолчанию:
<openpyxl.styles.fonts.Font object>
Parameters:
name=None, charset=None, family=None, b=False, i=False, strike=None, outline=None, shadow=None, condense=None, color=None, extend=None, sz=None, u=None, vertAlign=None, scheme=None
В моем случае получилось так:
ws[f'A3'].font = opx.styles.Font(name='Arial Cyr', charset=204, family=2.0, b=True, color='0070C0', sz=8.0)