Aca les dejo un codigo para exportar un DataGridView a Excel. Crea un archivo .csv y luego lo abre con Excel, evitando la dependencia de alguna version en particular. El codigo es sencillo
Se debe agregar:
Código:
Imports System.IO
Código:
Function Exportar() Dim strStreamW As Stream Dim strStreamWriter As StreamWriter Dim Filas = frm_principal.Grid.Rows.Count Dim Columnas = frm_principal.Grid.Columns.Count Dim Archivo As String = Application.StartupPath & "\Centros.csv" Dim Linea Dim f, c
strStreamWriter = New StreamWriter(strStreamW, System.Text.Encoding.UTF8)
'CABECERA For c = 0 To Columnas - 1 Linea = Linea & frm_principal.Grid.Columns(c).Name & ";" Next
Linea = Mid(Linea, 1, Linea.ToString.Length - 1) strStreamWriter.WriteLine(Linea) Linea = Nothing
'FILAS For f = 0 To Filas - 1 For c = 0 To Columnas - 1 Linea = Linea & frm_principal.Grid.Item(c, f).Value & ";" 'MsgBox(Grid.Item(c, f).Value) Next Linea = Mid(Linea, 1, Linea.ToString.Length - 1) strStreamWriter.WriteLine(Linea) Linea = Nothing Next strStreamWriter.Close()
Try Process.Start(Archivo) 'Ejecuta el archivo creado Catch Ex As Exception MsgBox(Ex.Message, MsgBoxStyle.Critical, Ex.Source) End Try
End Function
En un boton:
Código:
Call Exportar()
Espero les sirva.
« Última modificación: 05 Febrero 2008, 18:08 por elmaro »
el code esta bueno... no lo he visto completo pero veo que concatenas palabras de la forma tradicional (al estilo vb 6) intenta hacer las concatenacion utilizando la clase StringBuilder (System.Text) eso hara las concatenaciones mucho mas rapido y utilizara menos memoria....