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.
17 comentarios:
Hola, muchas gracias por el ejemplo, es justo lo que buscaba, pero tengo un pequeño problemilla y es que no me reconoce como correcto la linea
Dim m_Excel As Microsoft.Office.Interop.Excel.Application
concretamente lo que esta luego del As
Es correcto como esta?
Gracias
Lo q pasa es q no estas agregando la referencia q se menciona, si vuelves a leer, fijate en el apartado q tienes ire a proyecto-> agregar referiecia...... y todo lo demas
¡Hola que tal!
Segui tu consejo y para hacer una prueba puse tu codificacion, pero me marca un error
Línea 34: strRutaExcel = "C:\Conejito.xls"
Línea 35:
Línea 36: m_Excel = CreateObject("Excel.Application")
Línea 37: m_Excel.Workbooks.Open(strRutaExcel)
Línea 38: m_Excel.Visible = False 'Dejamos el libro oculto
A que se debe???
La verdad me urge esto, no se si podrian ayudarme por favor =)
¡Hola que tal!
Segui tu consejo y para hacer una prueba puse tu codificacion, pero me marca un error
Línea 34: strRutaExcel = "C:\Conejito.xls"
Línea 35:
Línea 36: m_Excel = CreateObject("Excel.Application")
Línea 37: m_Excel.Workbooks.Open(strRutaExcel)
Línea 38: m_Excel.Visible = False 'Dejamos el libro oculto
A que se debe???
La verdad me urge esto, no se si podrian ayudarme por favor =)
me da un error cuando trata de abrir el archivo excel.
o sea el código m:excel.workbooks.Open("")
no me funciona
me puedes ayudar?
Felipe
Gracias me ha sido de mucha ayuda
excelente, te agradezco mucho el ejemplo, me fue de gran ayuda
buenas, necesito hacer una aplicacion que me inserte datos en excel, dentro siempre de la misma pagina, mi pregunta es;
¿ A partir de el codigo mostrado anteriormente, es posible general dicha aplicacion? es que no tengo muchos conocimientos de programación y me urge...
Gracias.
Elegante como el pegante... vacano gracias parce de todo corazon, que nota sirve full me saco de un lio de ultim hora con una tediosa base sql esa maldita programacion que a ultimo momento no funciona
Elegante como el pegante... vacano gracias parce de todo corazon, que nota sirve full. me saco de un peo a ultima hora las malditas bases sql !GRACIAS! :-)
todo bien, solo que me da un Error en la linea:
MsgBox(m_Excel.Worksheets("Hoja1").Cells(1, 1).Value)
al parecer es por el "cells" :s
que puedo hacer al respecto?
gracias...
He buscado por varios dias, este sin duda es el mejor ejemplo que he encontrado, muchas gracias, muy simple y entendible.
Gracias por el dato, muy claro lo que expones; tiene las funciones básicas para poder insertar registros desde excel a una base de datos :D
Muchisimas Gracias!!!
me gane unos pesitos por hacer esto
Muy buena ayuda, gracias!!!
Buena ayuda.. Muchas gracias !!
Hola me ha servido de mucho, pero necesito leer varias columnas y cada una guardarla en una variable. Nunca se cuantas filas tiene una columna.
¿Cómo puedo hacerlo?
Publicar un comentario