Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2011
martonbarbosa martonbarbosa is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 15
Poder: 0
martonbarbosa Va por buen camino
exportar/importa a excel

Hola gente buenas!!!

Tengo un problema que me vuelve loco!
Estoy haciendo un programa para cargar clientes y exportarlos a excel, pero tambien puedo importalos.

El problema es el siguiente:

Cuando exporta una planilla que contiene fechas, yo en excel la veo bien, pero cuando importo esa planilla a mi StringGrid veo la fecha como numeros!

Digamos en excel veo: 01/08/2011 y en el stringgrid veo: 40551
la verdad me vuelve loco... todo mi programa anda bien menos eso...

paso a dejar los codigos de cada accion!

Abrir una planilla de excel:
Código Delphi [-]
procedure TTrabajos.BitBtn3Click(Sender: TObject);
var
  i, r, x, lin : Integer;
  si: String;
  Hoja: _WorkSheet;
  buttonSelected : Integer;
begin
if BitBtn3.Caption = 'Abrir' then
 begin
  PlaySound('open', hInstance, SND_RESOURCE or SND_ASYNC);
  BitBtn3.Kind := bkCancel;
  BitBtn3.Caption := 'Cerrar';
  DecimalSeparator:='.';
  Excel.Workbooks.Open( ExtractFilePath( Application.ExeName ) + 'Data\Trabajos.xls',
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0 );
  Hoja := Excel.Worksheets.Item[1] as _WorkSheet;
  i := 2;
  si := IntToStr( i );
  r := 1;
  StringGrid1.Row := StringGrid1.Rowcount - 1;
  repeat
   with StringGrid1 do
    begin
     Cells[0,r] := Hoja.Range['A'+si,'A'+si].Value2;
     Cells[1,r] := Hoja.Range['B'+si,'B'+si].Value2;
     Cells[2,r] := Hoja.Range['C'+si,'C'+si].Value2;
     Cells[3,r] := Hoja.Range['D'+si,'D'+si].Value2;
     r := r + 1;
     RowCount := StringGrid1.RowCount + 1;
    end;
   Inc( i );
   si := IntToStr( i );
  until ( VarType( Excel.Range['A'+si,'A'+si].Value2 ) = VarEmpty );
   Excel.Workbooks.Close( 0 );
   With Combobox1.Items do
   Begin
    for x := 1 to StringGrid1.RowCount -1 do
     begin
      Add(StringGrid1.Cells[0,x]);
     end;
   end;
 end
else
 begin
  PlaySound('close', hInstance, SND_RESOURCE or SND_ASYNC);
  buttonSelected := MessageDlg('Desea Guardar los datos?',mtInformation , [mbYes,mbCancel], 0);
  if buttonSelected = mrYes then
   begin
    BitBtn2.Click;
    BitBtn3.Kind := bkOK;
    BitBtn3.Caption := 'Abrir';
    Combobox1.Clear;
    for lin := 1 to StringGrid1.RowCount -1 do
     StringGrid1.Rows[lin].Clear;
     Stringgrid1.RowCount := 2;
   end
  else
   begin
    BitBtn3.Kind := bkOk;
    BitBtn3.Caption := 'Abrir';
    Combobox1.Clear;
    For lin := 1 to StringGrid1.RowCount -1 do
     stringGrid1.Rows[lin].clear;
     StringGrid1.RowCount := 2;
  end;
 end;
end;

Procedimiento para guardar la planilla!
Código Delphi [-]
procedure TTrabajos.BitBtn2Click(Sender: TObject);
var
 Hoja: _WorkSheet;
 i, r : Integer;
 si, format : String;
begin
PlaySound('start', hInstance, SND_RESOURCE or SND_ASYNC);
// Abrimos excel
Excel.Connect;
// Creamos un nuevo libro con tres hojas (predeterminado)
Excel.Workbooks.Add( NULL, 0 );
// Apuntamos a la primera hoja y le cambiamos el nombre
 Hoja := Excel.Worksheets.Item[1] as _WorkSheet;
 Hoja.Name := 'Clientes';
// Nombre Columnas
 Hoja.Range['A1','A1'].Value2 := StringGrid1.Cells[0,0];
 Hoja.Range['A1','A1'].ColumnWidth := 14;
 Hoja.Range['B1','B1'].Value2 := StringGrid1.Cells[1,0];
 //Hoja.Range['B1','B1'].ColumnWidth := 70;
 Hoja.Range['C1','C1'].Value2 := StringGrid1.Cells[2,0];
 Hoja.Range['C1','C1'].ColumnWidth := 14;
 Hoja.Range['D1','D1'].Value2 := StringGrid1.Cells[3,0];
 Hoja.Range['D1','D1'].ColumnWidth := 14;
 // Datos
 i := 2;
 si := IntToStr( i );
 r := 1;
 Repeat
   Hoja.Range['A'+si,'A'+si].Value2 := StringGrid1.Cells[0,r];
   Hoja.Range['B'+si,'B'+si].Value2 := StringGrid1.Cells[1,r];
   Hoja.Range['C'+si,'C'+si].Value2 := StringGrid1.Cells[2,r];
   Hoja.Range['D'+si,'D'+si].Value2 := StringGrid1.Cells[3,r];
   r := r + 1;
   Inc( i );
   si := IntToStr( i );
 Until (r >= 100);
 //formato de fecha
 Format := 'dd/mm/yyyy';
 Hoja.Range['C2','D10'].NumberFormat := Format;
 // Damos formato a los totales
 Hoja.Range['A1','D1'].Font.Bold := True;          // fuente negrita
 Hoja.Range['A1','D1'].Interior.Color := clLime;       // Interior Verde Lima
 Hoja.Range['A1','D1'].Borders.Weight := xlMedium;
 hoja.Range['A2','D10'].Borders.Weight := xlThin;
 Hoja.Range['A1','D1'].HorizontalAlignment := xlCenter;
 Hoja.Range['B2','B10'].Columns.AutoFit;
 //Hoja.Range['C2','D10'].HorizontalAlignment := xlLeft;
 //Deshabilitamos alerta de sobreescritura
 Excel.Application.DisplayAlerts[1] := False;
 // Lo primero que hacemos es guardarlo
 Excel.ActiveWorkbook.SaveAs( ExtractFilePath( Application.ExeName ) + 'Data\Trabajos.xls',
  EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, xlNoChange,
  EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, 0);
 Excel.Quit;
 Excel.Disconnect;
end;

La verdad que parte del codigo lo saque de internet y anda bien... y no veo errores!

si alguien me puede dar una mano seria GENIAL!

Desde ya muchas gracias

Salu2
4n71chr157
Responder Con Cita
  #2  
Antiguo 22-07-2014
Avatar de GerTorresM
GerTorresM GerTorresM is offline
Miembro
 
Registrado: nov 2005
Ubicación: Tunja - Boyacá
Posts: 210
Poder: 19
GerTorresM Va por buen camino
Mira los formatos

Código Delphi [-]
  Hoja.Cells[i,5].NumberFormat:= 'DD/MM/YYYY';
  
  for j := 5 to 22 do
    Hoja.Cells[i,j].NumberFormat := '#,##0';
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Exportar a excel raf.rsr Servers 42 08-05-2012 21:35:16
Exportar a Excel jocey Servers 3 28-10-2008 23:33:28
Exportar a excel... BuenaOnda Varios 3 20-08-2007 09:55:07
Importa y Exportar Ulises Firebird e Interbase 13 08-05-2005 04:18:42


La franja horaria es GMT +2. Ahora son las 13:00:46.


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