Ver Mensaje Individual
  #1  
Antiguo 25-06-2008
grotero76 grotero76 is offline
Miembro
 
Registrado: feb 2007
Posts: 32
Reputación: 0
grotero76 Va por buen camino
Problema con Fechas en Exportacion Excel

Hola a todos,

tengo un problema con las fechas al realizar una exportación de datos de una rejilla a una hoja Excel. La carga de datos en el Excel la hago de la siguiente forma:

Código:
var
  Excel, WorkBook, WorkSheet: Variant;
  i,j:Integer;
  Filename:String;
  WBk, WS: OleVariant;
  columna:Integer;

begin
    for i := 1 to grid1.RowCount - 1 do      
        for j := 0 to grid1.ColCount - 1 do
        begin  
          columna:=columna+1;

          //Cargo el String que hay en el grid en la celda correspondiente
          WorkSheet.Cells[i + 1, columna] := grid1.Cells[j, i];
        end;

    WorkBook.SaveAs(Filename);

    Excel := GetActiveOleObject('Excel.Application');
    Excel.Visible:=True;
    WBk := Excel.WorkBooks.Open(Filename);
    WS := WBk.Worksheets.Item['Listado exportado'];
    WS.Activate;

end;

El problema viene en la línea:
WorkSheet.Cells[i + 1, columna] := g_infras.Cells[j, i];

Si por ejemplo el valor de grid1.Cells[j,i] es '06/02/2008' (formato dd/mm/yyyy) el valor que me inserta en Excel es '02/06/2008', es decir, le da la vuelta al mes y al día y lo pone en el formato mm/dd/yyyy. De alguna forma interpreta que el String que le paso es una fecha y le aplica un formato para escribirlo en la hoja Excel

La única solución que he encontrado de momento es no pasarle '06/02/2008' sino pasarle '06\02\2008', es decir, parece que con las barras invertidas no lo interpreta como una fecha y deja el String como está.

¿Alguien sabe por qué ocurre esto y cómo se puede solucionar?

Un saludo y muchas gracias.
Responder Con Cita