Ver Mensaje Individual
  #1  
Antiguo 13-10-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Reputación: 20
weke Va por buen camino
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.
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita