![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
|
excel lento
Buenas a todos, tengo un problema con la velocidad en la que se me generan los informes de excel, en el sistema se generan reportes a excel que no tienen menos de 1000 lineas y algunos llegan hasta las 65000, y se necesita si o si que los informes los genere a excel, pero el sistema tarda demasiado en generar los informes, mas especificamente en pegar los datos en la planilla. yo les dejo aca el codigo para ver que esta mal o que se puede mejorar(seguro que la mayoria de las cosas), pero tambien estuve buscando y no encontre el famoso componente datatoxls, queria ver si con ese componente podia aumentar la velocidad de generacion.
les comento que para generar un reporte de 9000 lineas tardo 3 minutos!! y lo tarda en importarlas al excel, porque ya comprobe que la consulta la realiza en 1" bueno, les dejo el codigo de la importacion. saludos y gracias!!!! procedure Tinfgastmens.Button1Click(Sender: TObject); var i : integer; begin tinfgastomensual.Close; tinfgastomensual.Prepared; tinfgastomensual.Parameters.ParamValues ['@fecha1']:= datetimepicker1.Date; tinfgastomensual.Parameters.ParamValues ['@fecha2']:= datetimepicker2.Date; tinfgastomensual.Open; excel.Workbooks.Add('C:\Sistemas vientos\sistemas ordenes de compra\reportes\listherrcargo.xls',0); excel.Cells.Item[5,2]:=date; for i:=0 to tinfgastomensual.RecordCount -1 do begin excel.Cells.Item[i+9,1]:=tinfgastomensual.FieldValues['apellido']; excel.Cells.Item[i+9,2]:=tinfgastomensual.FieldValues['nombre']; excel.Cells.Item[i+9,3]:=tinfgastomensual.FieldValues['area']; excel.Cells.Item[i+9,4]:=vartostr (tinfgastomensual.FieldValues['tel']); excel.Cells.Item[i+9,5]:=tinfgastomensual.FieldValues['cargo']; excel.Cells.Item[i+9,6]:=tinfgastomensual.FieldValues['categoria']; excel.Cells.Item[i+9,7]:=tinfgastomensual.FieldValues['denominacion']; excel.Cells.Item[i+9,8]:=tinfgastomensual.FieldValues['cant']; excel.Cells.Item[i+9,9]:= (tinfgastomensual.FieldValues['cant'] * tinfgastomensual.FieldValues['precio']); excel.Cells.Item[i+9,10]:=tinfgastomensual.FieldValues['fecha']; excel.Cells.Item[i+9,11]:=tinfgastomensual.FieldValues['intdest']; excel.Cells.Item[i+9,12]:=tinfgastomensual.FieldValues['zonadest']; label3.Caption := inttostr (i); tinfgastomensual.next end; tinfgastomensual.First; excel.Visible[0]:=true; tinfgastomensual.Close; infgastmens.close; excel.Disconnect; excel.Quit; end; |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| excel a delphi, como mostrar columnas de excel | Vyckso | Servers | 2 | 13-08-2007 12:38:08 |
| Procedure en Firebird lento o IbQuery lento | capo979 | Firebird e Interbase | 14 | 17-07-2007 21:35:36 |
| MDI lento | tomasgarcia | OOP | 1 | 27-07-2004 20:28:05 |
| lento | carlomagno | Firebird e Interbase | 4 | 02-07-2004 13:48:08 |
| Cuando imprimen en excel o word se pone lento el sistema | tulio | Varios | 0 | 07-04-2004 14:56:37 |
|