Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Error al exportar a excel (https://www.clubdelphi.com/foros/showthread.php?t=15177)

weke 13-10-2004 14:54:05

Error al exportar a excel
 
Buenas a todos.

Tengo un problema a la hora de exportar una lista a excel. Lo que pasa es que el error solo me lo da cuando la lista es muy grande. Con unos 2000 elementos no hay problema, pero cuando son unos 3000 me da error.
El código que utilizo es el siguiente:
Código:

var
  Excel,xlw : Variant;
  fichero,temp : String;
  i,j : integer;
  creado:boolean;
  l1 : TListItem;
  MisDoc,XLSFILE:string;
begin
F_MAIN.Cursor:=crhourglass;
TRY
  save.Title :='Exportar Incidencias';
  save.FileName:='';
  save.Execute;
  XLSFILE:=save.FileName;
  if XLSFILE <> '' then
  begin
          i:=0;
          j:=0;
          creado:=false;
                try
          begin
                Excel := CreateOLEObject('Excel.Application');
        //        Excel.WorkBooks.Add;
                xlw:=Excel.WorkBooks.add;
                creado:=true;
          end;
          except
          begin
                Excel.Quit;
                raise;
          end;
          end;  //fin try
        //***** RECORREMOS EL LISTVIEW E INSERTAMOS LOS DATOS EN EL OBJETO EXCEL *****//
          Excel.Cells[1,1].Value:='"Fecha"';
          Excel.Cells[1,2].Value:='"Evento"';
          Excel.Cells[1,3].Value:='"Puerta"';
          Excel.Cells[1,4].Value:='"Descripcion"';
          while (i < Lista_incidencias.Items.Count) do
          begin
                while (j < 4) do
                begin
                  try
                  begin
                          //***** Acceso a las celdas *****//
                        Excel.Cells[i+2,j+1].Value:=Lista_incidencias.Items[i].SubItems.strings[j];
                        j:=j+1;
                  end;
                  except
                  begin
                        Excel.Quit;
                        creado:=false;
                        raise;
                  end;
                  end;
                end;
                i:=i+1;
                j:=0;
          end;  //fin while
        //***** GUARDAMOS EL OBJETO EXCEL *****//
          if (creado = true) then
          begin
          TRY
                  xlw.SaveAs(FileName:=XLSFILE, Password := '');
        //          Excel.Save;
          FINALLY
                  Excel.Quit;
          END;  //fin try
          end else Excel.Quit;
  end;
end;

No se si cometo algún error Espero que me puedan ayudar un poquillo.
Muchas gracias a todos y Saludos.

Neftali [Germán.Estévez] 13-10-2004 15:51:38

Aparte de que podamos ser más o menos adivinos...¿Cual es el error que te da?;)

weke 14-10-2004 10:42:30

Disculparme, es que ayer con las prisas se me paso poner el error.

Me decía que estaba fuera de rango. El problema estaba en la lista, que cuando hacía la inserción, cada vez introducía unos datos y no me había dado cuenta que en algunas ocasiones introducía menos campos. Por eso me decía que estaba fuera de rango, porque no estaban los SubItems de la lista.

Muchas gracias y saludos.

Neftali [Germán.Estévez] 14-10-2004 11:20:08

Entonces, ¿ya está solucionado?

weke 14-10-2004 11:32:08

Si, ya está solucionado el problema. :D


La franja horaria es GMT +2. Ahora son las 12:34:12.

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