Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Formato Fecha celda Excel. (https://www.clubdelphi.com/foros/showthread.php?t=74824)

Veelicus 13-07-2011 14:52:41

Formato Fecha celda Excel.
 
Hola,

Estoy teniendo un problema con el formato de fechas a la hora de crear un archivo Excel, el caso es que si la fecha es 01/06/2011, me lo pasa como 06/01/2011 , sin embargo si la fecha es 23/06/2011 lo realiza correctamente.

Lo estoy intentando hacer de esta manera:

Código Delphi [-]
Hoja.Range['A2','A2'].NumberFormatLocal:= 'DD/MM/YYYY';
Hoja.Range['A2','A2'.Value2 :=                 dt_ORIGEN.DataSet.FieldByName('FECHA').AsString;

Quedaria muy agradecido si alguien me puede decir como solventar este problema.

Muchas gracias.

Caro 13-07-2011 15:08:00

Hola Veelicus, ¿has probado de pasarle directamente formateado?

Código Delphi [-]
Hoja.Range['A2','A2'].Value2 := FormatDateTime('dd/mm/yyyy', dt_ORIGEN.DataSet.FieldByName('FECHA').AsDateTime);

o

Código Delphi [-]
 ExcelHoja.Range['A2','A2'].EntireColumn.NumberFormatLocal:= 'DD/MM/YYYY';

Saluditos

Veelicus 13-07-2011 18:01:50

Cita:

Empezado por Caro (Mensaje 406254)
Hola Veelicus, ¿has probado de pasarle directamente formateado?

Código Delphi [-]Hoja.Range['A2','A2'].Value2 := FormatDateTime('dd/mm/yyyy', dt_ORIGEN.DataSet.FieldByName('FECHA').AsDateTime);


o

Código Delphi [-] ExcelHoja.Range['A2','A2'].EntireColumn.NumberFormatLocal:= 'DD/MM/YYYY';


Saluditos


Hola, usando la primera solucion que me indicas me sale lo siguiente:
06/01/2011 es decir, muestra el mes donde el dia y vicecersa

Con la segunda solucion me sale como resultado lo siguiente:
06/01/YYYY
es decir, lo mismo que la primera solucion solo que esta vez ni siquiera muetra el año correctamente.

Si no consigo hacerlo de alguna manera mas sencilla me parece que me tendre que hacer una funcioncilla que corte la fecha que llega y luego concatenarla de la manera adecuada...

Muchas gracias por tu ayuda!!

Caro 13-07-2011 21:43:40

Cita:

Empezado por Veelicus (Mensaje 406268)
Hola, usando la primera solucion que me indicas me sale lo siguiente:
06/01/2011 es decir, muestra el mes donde el dia y vicecersa

Con la segunda solucion me sale como resultado lo siguiente:
06/01/YYYY
es decir, lo mismo que la primera solucion solo que esta vez ni siquiera muetra el año correctamente.

Hola de nuevo, acabo de hacer la prueba y si, no funciona bien, he conseguido hacerlo funcionar de dos formas:

pasandole con formato de texto:

Código Delphi [-]
  Hoja.Range['A2','A2'].EntireColumn.NumberFormat := '@';

con formato de fecha :

Código Delphi [-]
  // de esta forma ya no desaparece el año
  Hoja.Range['A2','A2'].EntireColumn.NumberFormat := 'dd/mm/aaaa';

Saluditos

Caro 13-07-2011 21:51:52

Veelicus no te olvides utilizar etiquetas en tus codigos [ delphi] tu codigo [ /delphi] sin el espacio o también de esta forma:



Saluditos y bienvenido a clubdelphi.

Veelicus 14-07-2011 08:14:06

Cita:

Empezado por Caro (Mensaje 406290)
Hola de nuevo, acabo de hacer la prueba y si, no funciona bien, he conseguido hacerlo funcionar de dos formas:

pasandole con formato de texto:

Código Delphi [-] Hoja.Range['A2','A2'].EntireColumn.NumberFormat := '@';


con formato de fecha :

Código Delphi [-] // de esta forma ya no desaparece el año Hoja.Range['A2','A2'].EntireColumn.NumberFormat := 'dd/mm/aaaa';


Saluditos

Muchas gracias, ahora ya funciona!


La franja horaria es GMT +2. Ahora son las 20:40:11.

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