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.