Importar Archivo Excel A DataGridView VB.Net

Hola Amigos, Hoy les muestro como Importar un Archvo de Excel a Un DataGridView, esto es mu mportante a la Hora de Guardar muchos Registros de manera Simultanea en nuestra Base de Datos.

primero, hay que crear un Button en Nuestro formulario el cual se encargara de seleccionar nuestro aechivo de excel a importar, este es su codigo:

Dim openFD As New OpenFileDialog()
With openFD
.Title = «Seleccionar archivos»
.Filter = «Archivos Excel(*.xls;*.xlsx)|*.xls;*xlsx|Todos los archivos(*.*)|*.*»
.Multiselect = False
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
If .ShowDialog = Windows.Forms.DialogResult.OK Then
ImportExcellToDataGridView(.FileName, DataGridView)
End If
End With

como ven Hemos Declarado nuestro openfiledialog y hemos aplcado un filtro, este openfiledialog se encargara de regresar la ruta del archivo a importar a la funcion ImportExcellToDataGridView, y como ven tambien se proporcionan los Parametros que esta reduiere, (.FileName es el Patch que regresa el OpenFileDialog y DataGridView es el Control en el que se Inportaran los Datos.

es importante ue en el formulario o en mi caso en el Modulo .Bas imoprtar la siguiente Referencia:

Imports System.Data.OleDb, si no lo hacemos nos marcara error.

Public Function ImportExcellToDataGridView(ByRef path As String, ByVal Datagrid As DataGridView)
Try
Dim stConexion As String = («Provider=Microsoft.ACE.OLEDB.12.0;» & («Data Source=» & (path & «;Extended Properties=»»Excel 12.0;Xml;HDR=YES;IMEX=2″»;»)))
Dim cnConex As New OleDbConnection(stConexion)
Dim Cmd As New OleDbCommand(«Select * From [Hoja1$]»)
Dim Ds As New DataSet
Dim Da As New OleDbDataAdapter
Dim Dt As New DataTable
cnConex.Open()
Cmd.Connection = cnConex
Da.SelectCommand = Cmd
Da.Fill(Ds)
Dt = Ds.Tables(0)
Datagrid.Columns.Clear()
Datagrid.DataSource = Dt
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, «Error»)
End Try
Return True
End Function

como se muestra en el ejemplo, en mi caso La Hoja desde donde iportara los datos se llama Hoja1, deben especificar el nombre porque sino les marcara error, este codigo funciona para Excell 2003, 2007, y 2010 no lo he probado con 2013 pero creo que funciona.

el ejemplo lo pueden descargar desde Aqui, es un proyecto en VB.Net 2013.

Deja un comentario