Zapisuję pandy DataFrame to_excel za pomocą xlsxwriter. Udało mi się sformatować wszystkie moje dane (ustawioną szerokość kolumny, rozmiar czcionki itp.) Z wyjątkiem zmiany czcionki nagłówka i nie mogę znaleźć sposobu, aby to zrobić. Oto mój przykład:pandy xlsxwriter, nagłówek formatu
import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
data.to_excel(writer, sheet_name='test', index=False)
workbook = writer.book
worksheet = writer.sheets['test']
font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10})
header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True})
worksheet.set_column('A:A', None, font_fmt)
worksheet.set_row(0, None, header_fmt)
writer.save()
Przedostatnia linia próbująca ustawić format dla nagłówka nic nie robi.
Dobre obejście. Po prostu jakieś wyjaśnienie, dlaczego to działa. W programie Excel format komórki zastępuje format wiersza zastępujący format kolumny. 'Pd.core.format.header_style' jest konwertowany do formatu i jest stosowany do każdej komórki w nagłówku. W związku z tym wartości domyślnej nie można przesłonić przez 'set_row()'. Ustawienie 'pd.core.format.header_style' na' Brak' oznacza, że komórki nagłówka nie mają formatu zdefiniowanego przez użytkownika i dlatego format może być nadpisany .. – jmcnamara
Wygląda na to, że w pandach 0.18.1 zostały przeniesione 'pd. core.format' do modułu 'pd.formats', więc teraz należy napisać' pd.formats.format.header_style = None'. – krvkir
@krvkir - Dziękuję, dodaję komentarz do odpowiedzi. – jezrael