Python и Openpyxl - доступные атрибуты для форматирования отдельных ячеек - PullRequest
0 голосов
/ 10 сентября 2018

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

Мне нужно отформатировать определенные ячейки в электронной таблице (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

Спасибо, Фил

1 Ответ

0 голосов
/ 10 сентября 2018

Хорошо, я думаю, что понял. Пока что я выполняю форматирование отдельных ячеек с помощью объекта 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'
...