Visual Basic - Hay alguna forma de exportar a Excel mas rapido???

Life is soft - evento anual de software empresarial
 
Vista:

Hay alguna forma de exportar a Excel mas rapido???

Publicado por Hector (61 intervenciones) el 03/12/2002 16:46:30
Hola a todos y gracias por la ayuda.
Tengo que exportar de un msflexgrid a un excel, el tema es que son 20.000 lineas x 9 columnas, la exportacion la hace muy bien excepto que es muy lento, tarda muchísimo. Existe alguna forma de acelerar esto??, el codigo que uso es:

Dim MiExcel As Object
Dim guardar As String
'EXPORTAR INFORME A EXEL'

CommonDialog1.CancelError = True
Set MiExcel = CreateObject("excel.sheet")

Do While grid.TextMatrix(fila, 2) <> ""
grid.Row = 20000
For i = 0 To 8
grid.col = i
MiExcel.ActiveSheet.Cells(fila + 1, i + 1).Value = grid.Text
Next
fila = fila + 1
i = 0
Loop

'Guardo archivo'

CommonDialog1.Flags = cdlOFNHideReadOnly
CommonDialog1.Filter = "Todos los archivos (*.XLS)|*.XLS"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowSave
guardar = CommonDialog1.FileName
MiExcel.SaveAs guardar
MiExcel.Application.Quit
Set MiExcel = Nothing
MsgBox "Se Generó el archivo:" & guardar, vbInformation, "Informe" ' guardar

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Hay alguna forma de exportar a Excel mas rapido

Publicado por Rodolfo del Peru (1 intervención) el 03/12/2002 18:51:10
En realidad, no he exportado tantos registros, usualmente solo paso resumenes o consolidados y la exportacion es normal.

Creo que, entendiendo al excel, notaras que suele recalcular la Hoja por cada dato que se ingresa, entonces el tema, en tu caso, seria ver la manera de desactivar la opcion de recalculo automatico, luego pasar la data y finalmente, activar el recalculo automatico.

Para esto, tendrias que buscar documentacion al respecto para ver como se hace, ya que como te dije, no he tenido oportunidad de hacerlo.

Ojala por lo menos te haya dado una idea para solucionarlo.

Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hay alguna forma de exportar a Excel mas rapido

Publicado por Rodolfo del Peru (454 intervenciones) el 03/12/2002 18:51:38
En realidad, no he exportado tantos registros, usualmente solo paso resumenes o consolidados y la exportacion es normal.

Creo que, entendiendo al excel, notaras que suele recalcular la Hoja por cada dato que se ingresa, entonces el tema, en tu caso, seria ver la manera de desactivar la opcion de recalculo automatico, luego pasar la data y finalmente, activar el recalculo automatico.

Para esto, tendrias que buscar documentacion al respecto para ver como se hace, ya que como te dije, no he tenido oportunidad de hacerlo.

Ojala por lo menos te haya dado una idea para solucionarlo.

Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hay alguna forma de exportar a Excel mas rapido

Publicado por Arcangel (1 intervención) el 03/12/2002 22:26:33
Estimado Hector:
Me resulta dificil de creer que por cualquier medio tengas un msflexgrid de 20000 x 9, ya que el tiempo de visualizacion debe ser inmenso.
Si fuera asi, donde tienes almacenada la informacion (acces, SQL, Oracel) y que tipo de conexion utilizas (recordset, ODBC, RDO, ADO)?

Dependiendo de eso, te puedo dar una guia mas rapida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RTA. A TU PREGUNTA

Publicado por Hector (61 intervenciones) el 05/12/2002 16:06:27
Tengo una base de datos SQL, con conexion ADO, Si efectivamente es asi generalmente saco informes de ese tamaño. El informe en si no tarda casi nada, me manejo con Select (querys), el problema es que cuando ese informe lo exporto a excel, tarda mucho, pero lo exporta perfecto, solo quisiera saber si hay alguna forma de hacerlo mas rápido
Muchas gracias por tu tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar