FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error al exportar a excel: campo fechas
Un saludo para todos.
Tengo un programa que hace una exportación de datos de un dbgrid a Excel en formato csv El proceso lo hace bien porque compruebo los datos traspasados (reviso el fichero csv con bloc de notas y está en formato 'dd-mm-yyyy') y están correctos. En mi version de Word 2007 aparece bien, en libreofice calc tambien. Pero en algún cliente(en concreto en uno), el campo fecha se altera, se cambia 'dd/mm/yyyy' por 'mm/dd/yyyy' P.e. se traspasa un campo fecha '01/02/2022' pero en su excel aparece como '02/01/2022'. Supongo que será un problema del cliente porque en otros ordenadores el traspaso se hace correctamente. He mirado la configuración tanto regional como fecha y hora de su sistema y está igual que en los ordenadores que muestran ese campo correctamente. ¿A alguien le ha pasado algo parecido?. ¿Es un problema de diferentes versiones de Excel?. Hay que tocar algo de la configuración de Excel?.¿Que hay que tocar? Se exporta así:
He probado a cambiar el carácter separador de día, mes y año y el resultado es el mismo. La versión del cliente es la Word 2021. Gracias por vuestro tiempo. |
#2
|
||||
|
||||
Me pasaba lo mismo.
Lo peor es que en algunos casos depende de si el mes es mayor o menor a 12, hace el cambio o no. Yo lo arreglé con el formato de fecha YYYY-MM DD HH:MI. Lo pones en la misma consulta y ya está. No conseguí solucionarlo cambiando la configuración del excel. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#3
|
|||
|
|||
Creo que el problema es que la función FormatDateTime te devuelve un string. Excel te lo va a intentar convertir a fecha, pero si lo que quieres almacenar en la celda de Excel es un string, le colocas apóstrofos antes de la variable ('''' + FormatDateTime('dd-mm-yyyy', Trunc(CDSListFacFEC_FACT.AsDateTime)); ).
Si deseas que se almacene como fecha, pues deber utilizar una variable TDateTime (lo que yo suelo usar es FechaCorte : TDateTime; y luego Excel.Sheets[1].Cells[k+3, 22] := FechaCorte. No está demás recordar que Excel no permite representar fechas anteriores al 01/01/1900, por lo que hay que estar pendiente de estas limitaciones, sobre todo cuando el motor de base de datos sí permite un rango de fechas más amplio. A mi por ejemplo, me pasó que tenía que escribir en Excel cosas como: Atenciones4505[1].ConsultaGestante := '1845-01-01' y por esto me tocó escribir esa variable en excel como texto. |
#4
|
|||
|
|||
Gracias fjcg02 y carnace por vuestro tiempo.
Perdón por el retraso , pero hemos tenido unos cuantos días de fiesta aquí en Valencia(Spain). He adoptado la solución de fjcg02. Cambiando el formato de fecha a YYYY-MM-DD ya funciona bien. Un saludo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error al exportar Excel en DelphiXE3 | agustibaldo | Servers | 0 | 03-01-2018 14:57:53 |
Error al exportar a Excel con FastReport 4 | wull | Impresión | 2 | 09-11-2012 03:36:44 |
Exportar fecha de interbase a Excel Error | Manuel | Varios | 6 | 05-11-2007 18:07:47 |
exportar a excel, error en formulas | jgutti | Servers | 3 | 29-03-2005 18:29:46 |
Error al exportar a excel | weke | Servers | 4 | 14-10-2004 12:32:08 |
|