Ich spare Pandas DataFrame to_excel mit xlsxwriter. Ich habe es geschafft, alle meine Daten zu formatieren (Spaltenbreite, Schriftgröße usw. einstellen), außer dass ich die Schriftart des Headers ändere, und ich finde den Weg dazu nicht. Hier ist mein Beispiel:pandas xlsxwriter, format header
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()
Die vorletzte Zeile, die versucht, Format für den Header festzulegen, tut nichts.
pd.core.format.header_style = None
Alle zusammen:
Gute Problemumgehung. Nur ein kurzer Hintergrund, um zu erklären, warum das funktioniert. In Excel überschreibt ein Zellenformat, das ein Zeilenformat überschreibt, ein Spaltenformat. Das 'pd.core.format.header_style' wird in ein Format konvertiert und auf jede Zelle in der Kopfzeile angewendet. Daher kann der Standardwert nicht durch 'set_row()' überschrieben werden. Das Setzen von 'pd.core.format.header_style' auf' None' bedeutet, dass die Header-Zellen kein benutzerdefiniertes Format haben und somit das Format überschrieben werden kann. – jmcnamara
Es sieht so aus als ob in Pandas 0.18.1 'pd. core.format' zu 'pd.formats' Modul, so sollte man jetzt' pd.formats.format.header_style = None' schreiben. – krvkir
@krvkir - Danke, ich füge deinen Kommentar hinzu, um zu antworten. – jezrael