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?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top