Frage

Ich versuche, einige Daten zu schreiben, von einer Tabelle zu einem anderen übertreffen. Derzeit bin ich eine Darstellung in Excel bekommen, die nicht ganz ist, was ich will, wie diese: „40.299,2501157407“

Ich kann das Datum erhalten fein auf die Konsole zu drucken, aber es ist nicht richtig, Schreiben in die Excel-Tabelle zu funktionieren scheint - die Daten müssen ein Datum Typ in Excel sein, kann ich nicht eine Textversion haben davon.

Hier ist die Linie, die das Datum liest:

date_ccr = xldate_as_tuple(sheet_ccr.cell(row_ccr_index, 9).value, book_ccr.datemode)

Hier ist die Linie, die das Datum aus schreibt:

row.set_cell_date(11, datetime(*date_ccr))

Es gibt nichts zu date_ccr zwischen diesen beiden Linien außer ein paar Vergleiche durchgeführt werden.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können die Gleitkommazahl direkt in die Tabelle schreiben und das Zahlenformat der Zelle eingestellt. Stellen Sie das Format mit der num_format_str eines XFStyle Objekt aus, wenn Sie den Wert schreiben.

https: //secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.Worksheet.write-method

Das folgende Beispiel schreibt das Datum 01.05.2010. (Beinhaltet auch Zeit von 6.00.10, aber dies wird durch das Format in diesem Beispiel gewählt versteckt.)

import xlwt

# d can also be a datetime object
d = 40299.2501157407

wb = xlwt.Workbook()
sheet = wb.add_sheet('new')

style = xlwt.XFStyle()
style.num_format_str = 'DD-MM-YYYY'

sheet.write(5, 5, d, style)
wb.save('test_new.xls')

Es gibt Beispiele für Zahlenformate (num_formats.py) in den Beispielen Ordner des xlwt Quellcode. Auf meinem Windows-Rechner: C: \ Python26 \ Lib \ site-packages \ xlwt \ Beispiele

Sie können lesen, wie Excel speichert Datumsangaben (dritter Abschnitt auf dieser Seite): https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top