2017-01-10 10 views
2

Ich habe eine Pandas df, die ich mit xlsx Paket formatieren derzeit habe ich die Möglichkeit, eine ganze Zeile oder Spalte mit xlsx formatieren, aber nicht bestimmte Zellen auch möchte ich füge einige Zeilen zwischen den DF ein.Wie formatiere ich bestimmte Zellen in Excel mit xlsx Paket in Python

Bild angehängt, wie ich die Excel-Datei aussehen soll.

Der folgende Code gibt mir die Datei im 1. Teil des Bildes. Ich muss etwas mehr Formatierung machen, zum Beispiel neue Zeilen einfügen und D13 und E13 kursiv formatieren. enter image description here

writer = pd.ExcelWriter('Sample Report Test.xlsx' , engine='xlsxwriter') 
df.to_excel(writer , index= False , sheet_name='Sample Report') 

workbook = writer.book 
worksheet = writer.sheets['Sample Report'] 

money_fmt = workbook.add_format({'num_format':'$#,##0' , 'font_name':'Batang' }) 
font_fmt = workbook.add_format({'font_name':'Batang' , 'bold':True }) 
tot_fmt = workbook.add_format({'num_format':'$#,##0' , 'font_name':'Batang' , 'bold':True }) 

worksheet.set_column('A:B' , 25 , font_fmt) 
worksheet.set_column('C:P' , 15 , money_fmt) 
worksheet.set_row(4, None , tot_fmt) 
worksheet.set_row(7 , None , tot_fmt) 

writer.save() 

Antwort

1

Try this:

money_italic_fmt = workbook.add_format({'num_format':'$#,##0', 
             'font_name':'Batang', 
             'italic':True}) 
worksheet.write(12, # <-- The cell row (zero indexed). 
       3, # <-- The cell column (zero indexed). 
       13, # <-- Value to write 
       money_italic_fmt # <-- Format 
) 
+0

Was ist, wenn ich nur ohne zu schreiben formatieren muss, da es bereits Daten in dieser Zelle gibt, welche Änderung ich machen muss? –

+0

@yasinmohammed, ich bin mir nicht sicher, dass Sie das tun können ... Sie versuchen, den gleichen Wert zu schreiben – MaxU

+0

Da meine ursprüngliche Datei mehrere Werte haben kann, die berechnet werden und nos wird wöchentlich ändern die no in den Code notieren Woche klingt nicht machbar –

3

Sie können mehr als ein Datenrahmen einzufügen, mit Versetzungen in eine XlsxWriter Datei. Siehe this example aus der Dokumentation.

Es ist nicht möglich, Zellen nach dem Schreiben zu formatieren (abgesehen von Spalten-/Zeilenformaten, siehe this example).

Wenn Sie eine sehr feinkörnige Formatierung benötigen, verwenden Sie am besten nur XlsxWriter direkt mit den Daten aus dem Datenrahmen.

Einige Leute verwenden bedingte Formatierung in XlsxWriter, um den gewünschten Effekt zu erhalten, wie dies SO answer. Dies gilt jedoch nicht für einzelne Zellen.

Verwandte Themen