Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2022
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
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í:
Código Delphi [-]
     ... 
     WorkSheet.cells[i,1] := CDSListFacNUM_FACT.AsInteger;
     WorkSheet.cells[i,2].value := FormatDateTime('dd-mm-yyyy', Trunc(CDSListFacFEC_FACT.AsDateTime));
     WorkSheet.cells[i,3] := CDSListFacNombreCli.AsString;
     ...

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.
Responder Con Cita
  #2  
Antiguo 16-03-2022
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
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 -
Responder Con Cita
  #3  
Antiguo 17-03-2022
carnace carnace is offline
Miembro
 
Registrado: feb 2008
Ubicación: Yopal, Casanare, Colombia
Posts: 27
Poder: 0
carnace Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 23-03-2022
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al exportar Excel en DelphiXE3 agustibaldo Servers 0 03-01-2018 13:57:53
Error al exportar a Excel con FastReport 4 wull Impresión 2 09-11-2012 02:36:44
Exportar fecha de interbase a Excel Error Manuel Varios 6 05-11-2007 17:07:47
exportar a excel, error en formulas jgutti Servers 3 29-03-2005 17:29:46
Error al exportar a excel weke Servers 4 14-10-2004 11:32:08


La franja horaria es GMT +2. Ahora son las 21:59:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi