Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Exportar de delphi a un libro de exel

HOLA A TODOS!!!

Con delphi, quiero crear un archivo que pueda ser abierto con exel correctamente, dividido por hojas, celdas y demas (claro en donde yo le indique).

Pero, como puedo hacerlo?
Responder Con Cita
  #2  
Antiguo 04-07-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 19
nemesio Va por buen camino
Revisa este truco:http://www.clubdelphi.com/trucos/ind...ll=0&scrollb=0
Responder Con Cita
  #3  
Antiguo 04-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
MUCHAS GRACIAS!!!
Voy a revisarlo, y si tienen alguna otra sugerencia se los agradeceria mucho, porque creo que el truco solo sirve para crear una hoja, no un libro ¿o me equivoco?
Responder Con Cita
  #4  
Antiguo 05-07-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
HOLA!!!!
Estoy checando el truco que me sugeriste, solo que no entiendo algunas partes porque no esta comentado. Lo intento correr y me marca algunos errores como:
- coinitialize y alltrim no esta inicializado
- if pos('/', alltrim(cells[i, linea - 1])) <> 0 then begin //aqui marca que los tipos son incompatibles


Código Delphi [-]
procedure ExportaExcel(pStringGrid : TstringGrid; c0,r0,c1,r1 : Integer);
var ExLin, ExCol, i, Linea, AuxInteger : Integer;
    AuxFloat : Double;
    AuxFecha : tDatetime;
    c : TCursor;
    Excel, ExcelDoc, WS : Variant;
begin
  c             := Screen.Cursor;
  Screen.Cursor := crHourGlass;
  with pStringGrid do begin
    try
      coinitialize(nil);
      Excel         := CreateOleObject('Excel.Application');
      ExcelDoc      := Excel.Workbooks.Add;
      WS            := ExcelDoc.ActiveSheet;
      Excel.Visible := true;
      ExCol         := 0;
      for i := c0 to c1 do begin
        inc(ExCol);
        ws.Cells.Item[1, ExCol]:= cells[i, 0];
      end;
      for linea := r0 to r1 do begin
        inc(ExLin);
        ExCol := 0;
        for i := c0 to c1 do begin
          inc(ExCol);
          try
            try
              if pos('/', alltrim(cells[i, linea - 1])) <> 0 then begin
                AuxFecha := strtodatetime(alltrim(cells[i, linea - 1]));
                ws.Cells.Item[ExLin, ExCol] := AuxFecha;
              end
              else AuxFecha := strtodatetime('GENERA EXCEPCION');
            except
              try
                AuxInteger := strtoint(alltrim(cells[i,linea-1]));
                ws.Cells.Item[ExLin,ExCol]:= AuxInteger;
              except
                try
                  AuxFloat := strtofloat(alltrim(cells[i,linea-1]));
                  ws.Cells.Item[ExLin,ExCol]:= AuxFloat;
                except
                  ws.Cells.Item[ExLin,ExCol]:= cells[i,linea-1];
                end;
              end;
            end;
          except end;
        end;
      end;
      ws.cells.entirecolumn.autofit;
    finally
      screen.Cursor := c;
    end;
  end;
end;


Código Delphi [-]
procedure ExportaExcel (pStringGrid : TstringGrid; c0,r0,c1,r1 : Integer);

Código Delphi [-]
ExportaExcel(StringGrid1, 0, StringGrid1.ColCount-1, 0, StringGrid1.RowCount-1);

No se si lo este mandando llamar bien o me equivoque en algo. O si me falta agregar alguna unit.

GRACIAS POR SU AYUDA!!!!!!!!
Responder Con Cita
  #5  
Antiguo 06-07-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, soy el autor del truco. Te pido disculpas tanto a tí como a todos los del foro y que han podido usar el truco, que seguro que no les ha funcionado. Para que la función coinitialize funcione hay que añadir al uses ActiveX, y la función Alltrim la he quitado ya que es una función propia de mi trabajo y la suelo usar para mis programas, pero básicamente consiste en quitarle todos los espacios que contenga el string que se le pasa por parámetro, tanto a la izquierda, derecha o en cualquier posición del string.

Ya he modificado el truco y espero que ahora os funcione.

Nuevamente pido disculpas por las molestias ocasionadas.

Saludos
Responder Con Cita
  #6  
Antiguo 07-07-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
Para reemplazar la función alltrim se puede utilizar la función TRIM de delphi que esta en SysUtils.
__________________
Suerte
Alejandro
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
Libro de delphi 7.0 lopezlu Varios 1 06-01-2006 21:04:41
Libro de delphi 5 BEHELIT Varios 5 23-11-2005 16:23:12
exportar de exel a mysql ¡¡ alachaise Servers 2 11-11-2004 21:18:23
Libro Delphi VRO Varios 5 12-07-2004 20:34:48
¿Qué libro es mejor para Delphi 6? jesus Varios 2 19-08-2003 22:05:03


La franja horaria es GMT +2. Ahora son las 16:21:22.


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