Выравнивание колонок в Excel при помощи openpyxl
Есть такой код, выполняющий выравнивание ячеек определенных столбцов по центру в горизонтали:
book = openpyxl.load_workbook(filename="Результат.xlsx")
sheet = book.active
letter_list = ["B", "C", "D", "E", "F", "G"]
for letter in letter_list:
sheet[f"{letter}" + str(range(1, df.shape[0] + 1))].alignment = Alignment(horizontal="center")
book.save("Результат.xlsx")
# в данном примере - 57 строк и 7 колонок, однако "A" - не задействуется
Однако, в ответ мне выдаёт ошибку:
ValueError: Brange(1, 57) is not a valid coordinate or range
Я понимаю, что мне нужно изменить Brange (better range) на стандартный range (хотя я не уверен, что это может решить эту проблему). Как я могу это сделать или есть другой способ исправить эту проблему?
Ответы (1 шт):
Наверное вы таким образом sheet[f"{letter}" + str(range(1, df.shape[0] + 1))].alignment = Alignment(horizontal="center") хотели создать List comprehension?
Если вы хотите выровнить только эту область столбцов, то можно цикл записать так:
for letter in letter_list:
for i in range(1, df.shape[0] + 1):
sheet[f"{letter}{i}"].alignment = Alignment(horizontal="center")
Если вам нужно/можно полностью отформатировать данные колонки, то эдак:
for letter in letter_list:
col = sheet.column_dimensions[f'{letter}']
col.alignment = Alignment(horizontal="center")