Muchas veces resulta útil acceder a datos de Excel desde una aplicación Visual Basic, ya sea para leer datos o para exportar información que ha sido procesada por el programa. Hacerlo es muy sencillo: basta con agregar la referencia de Excel y escribir un sencillo código.
Lo primero es agregar la referencia a Microsoft Excel. Para ello hay que ir a las propiedades del proyecto, pinchar en referencias, agregar, buscar las de tipo COM y seleccionar de la lista
Microsoft Excel 11.0 Object Library.
Ahora, con este sencillo código tendremos acceso a Excel:
Dim m_Excel As Microsoft.Office.Interop.Excel.Application
Dim strRutaExcel As String
strRutaExcel = "C:\libro.xls"
m_Excel = CreateObject("Excel.Application")
m_Excel.Workbooks.Open(strRutaExcel)
m_Excel.Visible = False 'Dejamos el libro oculto
'Mostramos el valor de la celda 1,1 del primer libre
MsgBox(m_Excel.Worksheets("Hoja1").Cells(1, 1).Value)
'Escribir en una celda
m_Excel.Worksheets("Hoja1").cells(3, 3).value = "prueba"
'Guardamos los cambios del libro activo
m_Excel.Application.ActiveWorkbook.Save()
'Nota: Hay una instruccion como esta:
m_Excel.Application.ActiveWorkbook.SaveAs
'Eliminamos la instancia de Excel de memoria
If Not m_Excel Is Nothing Then
m_Excel.Quit()
m_Excel = Nothing
End If
Espero que os sea útil. Hoy día Excel está muy extendido y bastante a menudo tengo que recurrir códigos como este para poder conectar Microsoft Excel con algún programa de Visual Basic.
Lo primero es agregar la referencia a Microsoft Excel. Para ello hay que ir a las propiedades del proyecto, pinchar en referencias, agregar, buscar las de tipo COM y seleccionar de la lista
Microsoft Excel 11.0 Object Library.
Ahora, con este sencillo código tendremos acceso a Excel:
Dim m_Excel As Microsoft.Office.Interop.Excel.Application
Dim strRutaExcel As String
strRutaExcel = "C:\libro.xls"
m_Excel = CreateObject("Excel.Application")
m_Excel.Workbooks.Open(strRutaExcel)
m_Excel.Visible = False 'Dejamos el libro oculto
'Mostramos el valor de la celda 1,1 del primer libre
MsgBox(m_Excel.Worksheets("Hoja1").Cells(1, 1).Value)
'Escribir en una celda
m_Excel.Worksheets("Hoja1").cells(3, 3).value = "prueba"
'Guardamos los cambios del libro activo
m_Excel.Application.ActiveWorkbook.Save()
'Nota: Hay una instruccion como esta:
m_Excel.Application.ActiveWorkbook.SaveAs
'Eliminamos la instancia de Excel de memoria
If Not m_Excel Is Nothing Then
m_Excel.Quit()
m_Excel = Nothing
End If
Espero que os sea útil. Hoy día Excel está muy extendido y bastante a menudo tengo que recurrir códigos como este para poder conectar Microsoft Excel con algún programa de Visual Basic.
12 comentarios:
pregunta pregunta como determino el tamaño el rango de las celdas activas osea donde termina el archivo osea la fila que esta hasta abajo del texto
Pues me temo que no hay manera eficiente de hacerlo. Prueba con un bucle while hasta que te encuentres una celda vacía o un grupo de ellas.
hola... oye no entiendo eso de las propiedades para agregar la libreria en dnd esta o q??....ayuda por favor
Hola. Podrías ayudarme?
Me manda el siguiente error
Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
cuando intento abrir el archivo excel
m_Excel.Workbooks.Open(strRutaExcel)
¿has mirado si tienes bien agregada la referencia COM de Excel? Quizá tengas que agregar otra llamada Microsoft Office.
Eso te ha pasado porque no has agregado la libreria de excel que es el primer paso que mencionan
Muy buen post gracias por la ayuda me sirvio de mucho
muy buen pos de gran ayuda
muy buen post gracias de gran ayuda
para agregar la libreria de excel le das en project y hasta abajo viene windowsAplicationpropities, te va abrir una ventana y dentro,existe una pestaña que dice COM
Y COMO PUEDO HACER PARA REMPLAZAR EL VALOR DE UN TEXBO EN UNA CASILLA DE EXCEL?
como puedo connectar excel 2013 con visual 2012
Publicar un comentario