A continuación les dejo el codigo fuente del programa hecho en visual basic 2010
Los nombres de los objetos y su correspondiente uso se los nombre en siguiente listado
usamos
DataGridView1 para ingresar y almacenar los datos a exportar o los importados
Button1 para Exportar los datos a Excel lleva el nombre de Exportar
Button2 para Importar los datos de Excel al DataGridView1 lleva el nombre de Importar
Form1 que se usa como interfaz
Bueno para finalizar la explicación antes de porner el codigo fuente debemos importar las referencias System.Data.OleDb y crear un metodo el cual llame Exportar_Excel
Imports System.Data.OleDb
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
Public Sub Exportar_Excel(ByVal dgv As DataGridView, ByVal pth As String)
Dim xlApp As Object = CreateObject("Excel.Application"
'crear una nueva hoja de calculo
Dim xlWB As Object = xlApp.WorkBooks.add
Dim xlWS As Object = xlWB.WorkSheets(1)
'exportamos los caracteres de las columnas
For c As Integer = 0 To DataGridView1.Columns.Count - 1
xlWS.cells(1, c + 1).value = DataGridView1.Columns(c).HeaderText
Next
'exportamos las cabeceras de columnas
For r As Integer = 0 To DataGridView1.RowCount - 1
For c As Integer = 0 To DataGridView1.Columns.Count - 1
xlWS.cells(r + 2, c + 1).value = DataGridView1.Item(c, r).Value
Next
Next
'guardamos la hoja de calculo en la ruta especificada
xlWB.saveas(pth)
xlWS = Nothing
xlWB = Nothing
xlApp.quit()
xlApp = Nothing
End Sub
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Este es el Button1 = Exportar
Private Sub Button1_Click
Dim save As New SaveFileDialog
save.Filter = "Archivo Excel | *.xlsx"
If save.ShowDialog = Windows.Forms.DialogResult.OK Then
Exportar_Excel(Me.DataGridView1, save.FileName)
End If
End Sub
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
'Este es el Button2 = Importar
Private Sub Button2_Click
Dim stRuta As String = ""
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
stRuta = .FileName
End If
End With
Try
Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;" & ("Data Source=" & (stRuta & ";Extended Properties=""Excel 12.0;Xml;HDR=YES;IMEX=2"";")) 'este es el codigo que funciona para office 2007 y 2010
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)
Me.DataGridView1.Columns.Clear()
Me.DataGridView1.DataSource = Dt
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error"
End Try
End Sub
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bueno esto es el codigo del programa probado y sin errores. Pueden cambiar las variables por el nombre que ustedes gusten.
para visualizar la interfaz y el funcionamiento vean el video de youtube que puse al principio.

