Openpyxl: schreiben von Zellen mit verschiedenen Formaten
Schreibe ich eine excel-Tabelle. Ich will schreiben der header (mit den Namen der Spalten) und die Daten (float-zahlen mit 2 Dezimalstellen) mit dem gleichen script.
Dazu bin ich mit diesem Stück code:
# Write the header
for i in xrange(len(header)):
sheet.cell(row=1,column=i+1).value = header[i]
# Write the data
for i in xrange(len(data)):
sheet.cell(row=2,column=i+1).style.number_format.format_code = '0.00E+00'
sheet.cell(row=2,column=i+1).value = float(data[i])
book.save(os.path.join(folder,'excelReport.xlsx'))
Dieser gibt mir en Ausnahme:
AttributeError: 'str' object has no attribute 'format_code'
Ich bin mir nicht 100% sicher, was mache ich hier falsch.
- versuchen Sie zu drucken
sheet.cell(row=2,column=i+1).style.number_format
ist es ein string? ich bin nicht vertraut mitOpenpyxl
aber Sie versuchen, ein Objektformat_code
was nicht existiert, da Sie ' r vorherigen Objekts ist ein string. - Ich werde es versuchen, aber soweit ich es verstehe, ist
sheet.cell(row=2,column=i+1)
ist nichts...ich meine, es ist nur eine leere Zelle wartet auf Inhalte, denn bisher habe ich createed das Blatt durchsheet = book.create_sheet()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur das Zahlenformat für die Zelle:
sheet.cell(row=2,column=i+1).number_format = '0.00E+00'
Kann man wohl auch vermeiden, mit
xrange
für die loops.enumerate(sequence, start)
ist besser, wenn Sie wirklich brauchen, um einzelne Zellen. Aber, wenn Sie einfach arbeiten mit Sequenzen Sie können fügen Sie diese einfach. Du bist-code kann wohl umgestaltet werden, um in etwa wie folgt Aussehen.Schreiben der header