Exportar datos de un programa de VisualBasic.net a Excel

En este artículo se muestra cómo automatizar Microsoft Excel y cómo rellenar un rango de celdas con un Textbox y con un listview.

1. Iniciaremos Microsoft Visual Studio .NET.

2. En el menú Archivo, haga clic en Nuevo y, después, en Proyecto. Seleccione Aplicación para Windows en los tipos de proyecto de Visual Basic. De forma predeterminada, se crea Form1.

3. Agregue una referencia a la Biblioteca de objetos de Microsoft Excel. Para ello, siga estos pasos:

  1. En el menú Proyecto, haga clic en Agregar referencia.
  2. En la ficha COM, busque la Biblioteca de objetos de Microsoft Excel y haga clic en Seleccionar.
  3. Haga clic en Aceptar en el cuadro de diálogo Agregar referencias para aceptar sus selecciones. Si se le pregunta si desea generar contenedores para las bibliotecas seleccionadas, haga clic en .

4. En el Form1 he agregado un TextBox  y un ListView que son los usare para exportar los datos a Excel. Y un botón que es el encargado de generar la acción.

5 . En el código del botón agregare todo el código,  es bastante sencillo y lo he comentado para aclarar que funciona cada línea importante.

'Variables locales

Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object

'Iniciar un nuevo libro en Excel

oExcel = CreateObject("Excel.Application")

oBook = oExcel.Workbooks.Add

'Agregar datos a las celdas de la primera hoja en el libro nuevo

oSheet = oBook.Worksheets(1)

' Agregamos Los datos que queremos agregar

oSheet.Range("A3").Value = TextBox1.Text

' Esta celda tendra los datos del textbox

oSheet.Range("A10").Value = "CODIGO"

' estas celdas por defecto solo seran para identificar cada columna

oSheet.Range("B10").Value = "TIPO"

oSheet.Range("C10").Value = "DESCRIPCION"

oSheet.Range("D10").Value = "MODELO"

oSheet.Range("E10").Value = "REGIS"

oSheet.Range("F10").Value = "DISPO"

'Desde aqui empezaremos a exportar la lista

If ListView1consul2.Items.Count > 0 Then

' primero verificamos cuantas filas tiene la lista

Dim col As Integer = 11 empezaremos en el libro de excel a partir de la celda 11

Dim i As Integer ' for para empezar a recorrer la lista

For i = 0 To ListView1consul2.Items.Count

If i = ListView1consul2.Items.Count Then

Exit For

End If

' estas son las columnas que usaremos y el contador nos ira cargando una a una cada fila

Dim a As String = "A" + col.ToString + ""

Dim b As String = "B" + col.ToString + ""

Dim c As String = "C" + col.ToString + ""

Dim d As String = "D" + col.ToString + ""

Dim j As String = "E" + col.ToString + ""

Dim f As String = "F" + col.ToString + ""

oSheet.Range(a).Value = ListView1consul2.Items(i).SubItems.Item(0).Text.ToString

oSheet.Range(b).Value = ListView1consul2.Items(i).SubItems.Item(1).Text.ToString

oSheet.Range(c).Value = ListView1consul2.Items(i).SubItems.Item(2).Text.ToString

oSheet.Range(d).Value = ListView1consul2.Items(i).SubItems.Item(3).Text.ToString

oSheet.Range(j).Value = ListView1consul2.Items(i).SubItems.Item(4).Text.ToString

oSheet.Range(f).Value = ListView1consul2.Items(i).SubItems.Item(5).Text.ToString

col = col + 1

ListView1consul2.Items.Remove(ListView1consul2.Items.Item(i))

' removemos cada el elemento esto es solo si desean hacerlo

' otra opcion es poner el contador positivo y no eliminar el elemento de la lista

i = i − 1

Next

End If

' hacemos visible el documento

oExcel.Visible = True

oExcel.UserControl = True

'Guardaremos el documento en el escritorio con el nombre prueba

oBook.SaveAs(Environ("UserProfile") & "\desktop\Prueba.xls")

Aquí encontraran el código del proyecto completo.

Proyectovbmundo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Visual Basic y mucho más
CyberChimps