Foros del Web » Programación para mayores de 30 ;) » .NET »

DataGridView a Excel en vb2008

Estas en el tema de DataGridView a Excel en vb2008 en el foro de .NET en Foros del Web. Hola expertos, tengo un problema a la hora de exportar el contenido de un DataGridView a Excel, el código funciona bien, lo que pasa es ...
  #1 (permalink)  
Antiguo 06/08/2010, 15:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 75
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta DataGridView a Excel en vb2008

Hola expertos, tengo un problema a la hora de exportar el contenido de un DataGridView a Excel, el código funciona bien, lo que pasa es que es muy lento el proceso y solo son 480 registros, se que es porque voy metiendo la informacion de las columnas por cada fila, quisiera saber si conocen algún otro método para hacerlo más rápido, les dejo el código, espero que me puedan ayudar.

Gracias.


Private Sub GridAExcel()

'Creamos las variables
Dim exApp As New Application
Dim exLibro As Workbook
Dim exHoja As Worksheet

' Variables para # de columnas y # de renglones
Dim iCol As Integer
Dim iRow As Integer

Try
'Añadimos el Libro al programa, y la hoja al libro

exLibro = exApp.Workbooks.Add
exHoja = exLibro.Worksheets.Add()

iCol = Me.dgv_prueba.ColumnCount
iRow = Me.dgv_prueba.RowCount

Me.Cursor = Cursors.WaitCursor
Me.lbl_procesar.Visible = True
Me.pgb_progreso.Maximum = iRow
Me.pgb_progreso.Minimum = 0
Me.pgb_progreso.Visible = True


'Encabezados del reporte
For i As Integer = 1 To iCol
If dgv_prueba.ColumnHeadersVisible = True Then
exHoja.Cells.Item(1, i) = dgv_prueba.Columns(i - 1).Name 'Go_DataSet.Tables("T2").Columns(i - 1).Namespace.ToString
exHoja.Cells.Item(1, i).HorizontalAlignment = 3
End If
Next

'Por cada fila va metiendo las columnas
For Fila As Integer = 0 To iRow - 1
For Col As Integer = 0 To iCol - 1
exHoja.Cells.Item(Fila + 2, Col + 1) = dgv_prueba.Rows(Fila).Cells(Col).Value 'Go_DataSet.Tables("T2").Rows(Fila).Item(Col).ToSt ring
Next
'Indica el progreso del reporte
Me.pgb_progreso.Value = Fila.ToString
Next

'Titulo en negrita, Alineado al centro y que el tamaño de la columna se ajuste al texto
exHoja.Rows.Item(1).Font.Bold = 1
exHoja.Rows.Item(1).HorizontalAlignment = 3
exHoja.Columns.AutoFit()

Me.Cursor = Cursors.Default
Me.lbl_procesar.Visible = False
Me.pgb_progreso.Visible = False

'Aplicación visible
exApp.Application.Visible = True

'exHoja = Nothing
exLibro.Close()
exApp.Quit()

Catch ex As Exception
MsgBox("Error al exportar a Excel", MsgBoxStyle.Information, "Data Vortex")
End Try

End Sub

Etiquetas: datagridview, excel, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:56.