Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: robertopjam en 28 de Junio 2017, 02:46
-
Hola a todos. Tengo una duda, cómo puedo ingresar datos a una hoja de excel (2016) desde visual basic 2012.
a modo de ejemplo la hoja de excel tiene los datos : en A1 nombre, en B1 apellido en C1 ciudad....
Quiero saber si se puede y como lo hago desde visual stdudio 2012.
capturado datos con textbox o botones.
desde ya muchas gracias
-
Buenas, sí se puede operar sobre un fichero excel usando Visual Basic
Este sería un ejemplo tomado de un curso de aprenderaprogramar
Para hacer posible operar con ficheros de Excel vete al menú Proyecto -- > Agregar referencia -- > Elige la ficha COM (componente) -- > Selecciona Microsoft Excel 12.0 Object Library (o un nombre similar) y pulsa aceptar.
Crea un fichero Excel con el siguiente contenido:
Celda A1: Sala del museo Celda B1: Visitas
Celda A2: Van Gogh Celda B2: 32
Celda A3: Picasso Celda B3: 24
Celda A4: Monet Celda B4: 55
Celda A5: Miró Celda B5: 44
Guarda y cierra este archivo en una ruta de tu ordenador y anota la ruta porque te va a ser necesaria
Ahora en Visual Basic crea un nuevo proyecto con un formulario y coloca en el formulario un label amplio y un botón.
Escribe el siguiente código (reemplaza la ruta del fichero excel por la ruta donde tú hayas guardado el fichero):
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = ""
Label1.AutoSize = False
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objXLApp As Excel.Application
Dim intLoopCounter As Integer
Dim objXLWb As Excel.Workbook
Dim objXLWs As Excel.Worksheet
Dim objRange As Excel.Range
objXLApp = New Excel.Application
objXLApp.Workbooks.Open("C:\Users\Juan\CursoVB\semana6\ejemploSemana6.xlsx")
objXLWb = objXLApp.Workbooks(1)
objXLWs = objXLWb.Worksheets(1)
MsgBox("Ahora la celda A5 contiene: " & objXLWs.Cells(5, 1).value)
For intLoopCounter = 1 To CInt(objXLWs.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row)
objRange = objXLWs.Range("A" & intLoopCounter)
Label1.Text = Label1.Text & vbCrLf & objRange.Value
objRange = objXLWs.Range("B" & intLoopCounter)
Label1.Text = Label1.Text & " -- > " & objRange.Value
Next intLoopCounter
'Escribimos en el fichero
objXLWs.Cells(5, 1) = "Rembrandt"
MsgBox("Ahora la celda A5 contiene: " & objXLWs.Cells(5, 1).value)
objXLApp.Quit()
End Sub
End Class
Ejecuta el programa. El resultado esperado es que muestre una caja de alerta indicando: “Ahora la celda B2 contiene Miró” y seguidamente que muestre “Ahora la celda B2 contiene Rembrandt” (si te pregunta si quieres guardar los cambios en el fichero excel responde Sí). En el label se debe mostrar la información que existía inicialmente en el fichero. Comprueba que ahora en el fichero en lugar de Miró figura Rembrandt.
Salu2