PDA

Ver la Versión Completa : Formato Fecha celda Excel.


Veelicus
13-07-2011, 14:52:41
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:


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?


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


o


ExcelHoja.Range['A2','A2'].EntireColumn.NumberFormatLocal:= 'DD/MM/YYYY';


Saluditos

Veelicus
13-07-2011, 18:01:50
Hola Veelicus, ¿has probado de pasarle directamente formateado?

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


o

Código Delphi [-] (http://www.clubdelphi.com/foros/#) 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
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:


Hoja.Range['A2','A2'].EntireColumn.NumberFormat := '@';


con formato de fecha :


// 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:

http://neftali.clubdelphi.com/images/UtilizarTAGs.png

Saluditos y bienvenido a clubdelphi.

Veelicus
14-07-2011, 08:14:06
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 [-] (http://www.clubdelphi.com/foros/#) Hoja.Range['A2','A2'].EntireColumn.NumberFormat := '@';


con formato de fecha :

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


Saluditos

Muchas gracias, ahora ya funciona!