Вот ответ на основании документации для xlsxwriter
:
Начните с создания объекта xlsxwriter
и записи в него кадра данных.header=False
означает, что мы не пишем имена столбцов, а startrow=1
оставляет пустую строку вверху (где мы можем поместить наши пользовательские столбцы далее).Затем мы получаем соответствующие объекты для workbook
и worksheet
.
writer = pd.ExcelWriter("output.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
Создаем формат заголовка:
header_format = workbook.add_format({
'bold': True,
'text_wrap': True,
'valign': 'top',
'fg_color': '#D7E4BC',
'border': 1})
Допустим, у вас есть три столбца, A
, B
и C
, но нужно выделить только A
и C
.Мы составляем список имен столбцов, которые мы хотим выделить, и применяем к ним форматирование выборочно:
columns_to_highlight = ['A', 'C']
for col_num, col_name in enumerate(df.columns.values):
if col_name in columns_to_highlight:
worksheet.write(0, col_num + 1, col_name, header_format)
else:
worksheet.write(0, col_num + 1, col_name)
writer.save()