pandas xlsxwriter, format-header
Ich bin speichern pandas DataFrame to_excel mit xlsxwriter. Ich habe es geschafft zu formatieren, alle meine Daten (legen Sie Spaltenbreite, schriftart, - Größe etc), außer für wechselnde header-schriftart und ich kann nicht finden, die Art und Weise, es zu tun. Hier mein Beispiel:
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()
Der vorletzten Zeile, die versucht, das format für den header nichts.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass man zuerst den reset-Standard-header-Stil, dann können Sie es ändern:
Alle zusammen:
Erklären durch jmcnamara, danke:
In Excel eine Zelle formatieren überschreibt eine Zeile, überschreibt das format einer Spalte format.Die
pd.core.format.header_style
wird in ein format konvertiert, und wird angewendet, um jede Zelle in der Kopfzeile. Als solcher kann der Standard kann überschrieben werden, indemset_row()
. Einstellungpd.core.format.header_style
zuNone
bedeutet, dass die header-Zellen nicht über ein Benutzer-definiertes format und kann somit überschrieben werden, indemset_row()
.EDIT: In der version
0.18.1
Sie ändern müssen,zu:
EDIT: ab version 0.20 das wieder geändert
Dank krvkir.
pd.core.format.header_style
wird in ein format konvertiert, und wird angewendet, um jede Zelle in der Kopfzeile. Als solcher kann der Standard kann überschrieben werden, indemset_row()
. Einstellungpd.core.format.header_style
zuNone
bedeutet, dass die header-Zellen nicht über ein Benutzer-definiertes format und damit das format überschrieben werden können..pd.core.format
zupd.formats
- Modul, so nun soll man das schreibenpd.formats.format.header_style = None
.Ein update für alle, die auf diesen post und ist mit Pandas 0.20.1.
Scheint es den erforderlichen code ist jetzt
Offenbar die
excel
Submodul ist nicht automatisch importiert wird, so einfach versuchenpandas.io.formats.excel.header_style = None
allein wirft eineAttributeError
.In pandas 0.20 die Lösung der akzeptierten Antworten wieder geändert.
Dem format, das sollte auf None eingestellt sein kann gefunden werden unter:
für pandas 0.24:
Den unten funktioniert nicht mehr:
Verwenden Sie stattdessen den folgenden pseudo-code in self-control und zukunftssicher: