Hola Amigos, Hoy Les Mostrare como Exportar el Contenido de un Datagrdview a un archivo de excel, primero se deben agregar las siguientes librerias:
Imports System.Drawing.Printing
Imports System.Drawing.FontFamily
Imports Microsoft.Office.Interop.Excel
les matrcara un error en Imports Microsoft.Office.Interop.Excel, esto es porque no hemos agregado las Referencias.
nos bamos al explorador de soluciones y damos click izquierdo sobe la solucion y Agregar > Referencias, en el cuadroque se Abrira nos dirigimos a Ensamblados > Extenciones y Buscmos Microsoft.Office.Interop.Excel seleccionamos la cajita check de lado izquierdo y luego en aceptar, como pueden ver ya desaparecio el error.
ahora bamos a ingresar la funcion para exportar el datagrid, la pueden poner en el formulario o en mi Caso en un Modulo .Bas:
debemos declarar la variable Dim i as Integer = 0, que sera el contador de las filas para la funcion
Public Function GetMyExcell(ByVal ElGrid As DataGridView) As Boolean
‘Creamos las variables
Dim exApp As New Application
Dim exLibro As Microsoft.Office.Interop.Excel.Workbook
Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
Try
‘Añadimos el Libro al programa, y la hoja al libro
exLibro = exApp.Workbooks.Add
exHoja = exLibro.Worksheets.Add()
‘ ¿Cuantas columnas y cuantas filas?
Dim NCol As Integer = ElGrid.ColumnCount
Dim NRow As Integer = ElGrid.RowCount
‘Aqui recorremos todas las filas, y por cada fila todas las columnas y vamos escribiendo.
For i As Integer = 1 To NCol
exHoja.Cells.Item(1, i) = ElGrid.Columns(i – 1).Name.ToString
‘exHoja.Cells.Item(1, i).HorizontalAlignment = 3
Next
For Fila As Integer = 0 To NRow – 1
For Col As Integer = 0 To NCol – 1
exHoja.Cells.Item(Fila + 2, Col + 1) = ElGrid.Rows(Fila).Cells(Col).Value
Next
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()
‘Aplicación visible
exApp.Application.Visible = True
exHoja = Nothing
exLibro = Nothing
exApp = Nothing
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, «Error al exportar a Excel»)
Return False
End Try
Return True
End Function
la funcion debe ser llamada asi: GetMyExcell(DataGridView), donde DataGridView es el datagrid con los datos a exportar, al terminar la funcion se abrirar el archivo exportado, se pueden agregar mas acciones a la funcion como SaveAs para guardar el archivo en una ubicacion especifica y asignarle un nombre pero eso es otra cosa.
el ejemplo lo pueden descargar desde Aqui, es un proyecto en VB.Net 2013.