PDA

Ver la Versión Completa : Error al exportar a excel


weke
13-10-2004, 14:54:05
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:

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