fecha y hora problema con XLRD y xlwt pitón libs
Pregunta
Estoy tratando de escribir algunas fechas de una hoja de cálculo Excel a otro. Actualmente, estoy recibiendo una representación en Excel que no es exactamente lo que quiero como este: "40,299.2501157407"
Me puede obtener la fecha de imprimir bien a la consola, sin embargo, no parece funcionar escritura derecho de la hoja de cálculo Excel - los datos deben ser un tipo de fecha en Excel, no puedo tener una versión de texto de la misma.
Aquí está la línea que indica la fecha en:
date_ccr = xldate_as_tuple(sheet_ccr.cell(row_ccr_index, 9).value, book_ccr.datemode)
Aquí está la línea que escribe la fecha de salida:
row.set_cell_date(11, datetime(*date_ccr))
No No se está haciendo algo para date_ccr entre esas dos líneas distintas de algunas comparaciones.
¿Alguna idea?
Solución
Se puede escribir el número de punto flotante directamente a la hoja de cálculo y establecer el formato de número de la célula. Establecer el formato utilizando el num_format_str
de un objeto XFStyle
cuando se escribe el valor.
https: //secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.Worksheet.write-method
El siguiente ejemplo escribe la fecha 01-05-2010. (También incluye el tiempo de 06:00:10, pero esto es ocultado por el formato elegido en este ejemplo).
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')
Hay ejemplos de formatos de número (num_formats.py) en la carpeta de ejemplos del código fuente xlwt. En mi máquina de Windows: C: \ Python26 \ Lib \ site-packages \ xlwt \ ejemplos
Se puede leer acerca de cómo Excel almacena las fechas (tercera sección de esta página): https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html