Python и openpyxl - доступные атрибуты для форматирования отдельных ячеек

Я просмотрел документы Openpyxl, стили, сотовый модуль и исходный код, но не вижу, что мне нужно. Возможно, я это пропустил (как новичок в Python).

Мне нужно отформатировать определенные ячейки в электронной таблице (ss) иначе, чем в остальной части ss. Могу ли я указать отдельную ячейку как сжатую по размеру, выравнивание по правому краю, выравнивание по низу, цвет шрифта = серый и т. д., Сохраняя при этом остальную часть SS в исходном стиле? Это Стиль ячейки, который должен быть установлен, или есть другой ресурс, чтобы увидеть, какие атрибуты Openpyxl разрешит для отдельных ячеек?

Вот фрагмент кода, в котором переменная al работает, но не br, и я не знаю почему.

# Cell Alignment
al = Alignment(horizontal='center', vertical='center')
br = Alignment(horizontal='right', vertical='bottom')
for row in sheet['A1':'I43']: 
    for cell in row: 
        if cell == 'Hz':
            cell.alignment = br   #Help: not working
        else:
            cell.alignment = al

Спасибо, Фил

0
0
88
1

Ответы 1

Хорошо, я думаю, что понял. Пока что я выполняю форматирование отдельных ячеек с помощью объекта NamedStyle.

Вот мой код:

# Set 'Named Styles', which are mutable, when need to apply formatting to different cells at once
headerrows = NamedStyle(name='headerrows')
headerrows.font = Font(bold=True, underline='none', sz=12)
headerrows.alignment = al

rooms = NamedStyle(name="rooms")
rooms.font = Font(bold=True, size=12)
rooms.border = Border(left=bold, top=bold, right=bold, bottom=bold)

sheet['A1'].style = rooms
sheet['A2'].style = headerrows
sheet['A3'].style = 'headerrows'
sheet['A4'].style = 'rooms'

Другие вопросы по теме