miércoles, 29 de febrero de 2012

18 - Excel en Visual Basic .NET.

UTILIZACION DE MICROSOFT EXCEL DESDE VISUAL BASIC .NET.

En esta aplicación realizaremos una pequeña introducción a los que es ADO modo conectado y a lo que se refiere a la utilización de platillas Excel para mostrar la información que rescatamos desde una base de datos. Para esto seguiremos los siguientes pasos:

- Crearemos una aplicación que llamaremos WinExcel.

- Agregaremos una referencia al la biblioteca Microsoft Excel 11.0 Object Library, siguiendo los siguientes pasos.

· Desde el explorador de soluciones seleccionaremos el proyecto con el botón derecho del Mouse y seleccionaremos la opción del meú Agregar Referencias como se muestra a continuación:



· Se abrirá la siguiente interfaz, que permitirá seleccionar la librería que deseamos utilizar:



· Para confirmar si la referencia fue agregada correctamente al proyecto, lo que se debe hacer es ir a la ventana de propiedades del proyecto y verificar si existe como referencia, como se muestra a continuación:


- Renombrar el formulario que se define por defecto con el nombre frmWinExcel.


- Agregaremos tres controles a este formulario, los cuales serán:

DataGridView – Name = DataGridView1

Button1 – Name = Button1, Text = Crear Dataset

Button2 – Name = Button2, Txet = Crear Excel

Quedando de la siguiente forma:



- En la definición global de la clase de formulario haremos la siguiente definición de variables:

Dim cnx As New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=(local)")

Dim ds As New DataSet

- En el método que atiende el evento clic del botón Button1, agregar las siguientes líneas de código:

Dim daClientes As New SqlDataAdapter("select CustomerID, CompanyName from Customers", cnx)

daClientes.Fill(ds, "Customers")

Me.DataGridView1.DataSource = ds

Me.DataGridView1.DataMember = "Customers"

Si ejecutamos la aplicación y hacemos clic con el Mouse sobre el botón Button1, que genera el dataset, obtendremos el siguiente resultado:



- Detener la aplicación para seguir con las modificaciones para utilizar una plantilla Excel


- En el botón Button2, que genera la llamada a la planilla Excel agregar las siguientes líneas de código:

' Agregar referencia COM a Microsoft Excel 11.0

Dim ExcelApp As New Excel.Application

Dim wkbook As Excel.Workbook

Dim wksheet As Excel.Worksheet

' Haga visible Excel

ExcelApp.Visible = True

'Consiga un libro de trabajo nuevo y seleccione la primera hoja

wkbook = ExcelApp.Workbooks.Add

wksheet = wkbook.ActiveSheet

Dim dt As DataTable = Me.ds.Tables("Customers")

Dim n As Integer

'Agregue los nombres de campo a cada celda

For n = 0 To dt.Columns.Count - 1

wksheet.Cells(1, n + 1).Value = dt.Columns(n).ColumnName

Next

'Itere con las filas y ponga los datos en las células.

For n = 0 To dt.Rows.Count - 1

wksheet.Range("A" & n + 2, "B" & n + 2).Value = _

dt.Rows(n).ItemArray

Next

With wksheet.Range("A1", "B1")

.Font.Bold = True

.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter

End With

wksheet = Nothing

wkbook = Nothing

ExcelApp.Quit()

ExcelApp = Nothing

- Al ejecutar nuevamente la aplicación, cargando el datset y luego presionar el botón Button2 que genera la llamada a la planilla de excel y la carga de datos, se podrá observar el siguiente resultado:


No hay comentarios: