Openpyxl применяет форматирование ко всей строке на основе смещения места записи данных - PullRequest
0 голосов
/ 23 апреля 2020

Я использую openpyxl для записи некоторых данных на лист Excel. Мой код выглядит следующим образом:

from openpyxl import Workbook
from openpyxl.styles import Font

file_name = 'sample_file.xlsx'

wb = Workbook()
ws = wb.active

ws['A1'] = 'some data'
ws['B1'] = 'more data'
ws['C1'] = 'even more data'

row = ws.row_dimensions[1]
row.font = Font(bold=True)

wb.save(filename = file_name)
wb.close()

Проблема, которую я вижу, заключается в том, что жирный формат применяется к ячейкам D1, E1, F1, G1 и т. Д. c., Но нет. к целевым ячейкам A1, B1 и C1.

В документации по https://openpyxl.readthedocs.io/en/stable/styles.html говорится следующее:

"Стили также могут применяться к столбцам и строкам но учтите, что это применимо только к ячейкам, созданным (в Excel) после закрытия файла. Если вы хотите применить стили ко всем строкам и столбцам, вы должны применить стиль к каждой ячейке самостоятельно. Это ограничение формата файла. .. "

Итак, я реализовал следующий код (который работает):

bold_headers = Font(bold=True)

for cell in ws["1:1"]:
    cell.font = bold_headers

Кто-нибудь знает, почему мой оригинальный подход не сработал? Заранее спасибо!

...