TUTORIAL DE LA APLICACIÓN
1. Base de Datos
IF EXISTS (SELECT name FROM sys.databases WHERE name = 'BD_Tutoriales') DROP DATABASE BD_Tutoriales GO CREATE DATABASE BD_Tutoriales GO USE BD_Tutoriales GO SET LANGUAGE SPANISH GO SET DATEFORMAT DMY GO SET NOCOUNT ON GO CREATE TABLE Cliente ( Cliente_ID char(5) NOT NULL, Cli_Nombre varchar(30) NULL, Cli_Apellidos varchar(30) NULL, Cli_FechaNac datetime NULL, Cli_Sexo char(1) NULL, Cli_DNI char(8) NULL, Cli_Direccion varchar(30) NULL, Distrito_ID char(5) NOT NULL, Cli_Telefono varchar(10) NULL, Cli_EstadoCivil varchar(30) NULL, Cli_Email varchar(50) NULL, Cli_Password char(6) NULL, Cli_NroCuenta char(10) NULL, Cli_Estado char(1) NULL ) GO ALTER TABLE Cliente ADD PRIMARY KEY (Cliente_ID ASC) GO -----------------------------CLIENTES------------------------------ INSERT INTO Cliente VALUES ('C0001','Juan ','Quispe Vallejos','21/06/1974','M','46791346','AV Javier Prado 233','DIS02','654-6689','CASADO','juanqui@hotmail.com','666666','1911250709','1') INSERT INTO Cliente VALUES ('C0002','Lucho','Mamani Luque','12/05/1975','M','48591526','Av.las Alomos 560','DIS15','798-4598','CASADO','kj_@hotmail.com','794613','1921853100','1') INSERT INTO Cliente VALUES ('C0003','Luis','Arias Castro','18/09/1974','M','45926132','AV la molina 269','DIS41','411-4562','SOLTERO','ahg_@hotmail.com','134679','1931382201','1') INSERT INTO Cliente VALUES ('C0004','Alberto','Moreno Manco','16/06/1973','M','47948592','Jr. chalaca 598','DIS51','452-9654','CASADO','poi@hotmail.com','895623','1921305400','1') INSERT INTO Cliente VALUES ('C0005','Mario','Hidalgo Condori','15/06/1975','M','45138841','av.arequipa 458','DIS31','456-8974','SOLTERO','jhg_45@hotmail.com','235689','1911939502','1') INSERT INTO Cliente VALUES ('C0006','Manuel','Villalta Talaverano','01/04/1974','M','42968574','AV Inca Garcilazo','DIS45','564-9874','CASADO','fd14@hotmail.com','784512','1961651800','1') INSERT INTO Cliente VALUES ('C0007','Daniel','Tarazona Panda','05/02/1974','M','48748565','AV Javier Prado 145','DIS16','855-6598','CASADO','dsa_154@hotmail.com','124578','1911891208','1') INSERT INTO Cliente VALUES ('C0008','Monica','Yangua Pajuelo','12/06/1974','F','47437602','Jr.las cumbres 121','DIS15','798-4879','SOLTERO','auy_45@hotmail.com','741852','1951112209','1') INSERT INTO Cliente VALUES ('C0009','Mario','Aguila Ramos','10/01/1974','M','44020877','AV Las palmeras 244','DIS12','456-9874','CASADO','aa_14@hotmail.com','963852','2004444508','1') INSERT INTO Cliente VALUES ('C0010','Luisa','Quesada Blas','21/02/1975','F','43215487','AV Arequipa 452','DIS15','123-6542','CASADO','rosa_45@hotmail.com','666666','1982222308','1') GO
2. VISUAL STUDIO 2005/2008/2010
2.1 DISEÑO DEL FORMULARIO
SOLO configurar las propiedades indicadas en cada uno de los controles del formulario(Ver Cuadro de Controles), lo que no se indica dejarlo tal como está.
Cuadro de Controles | ||
Botones | ContextMenuStrip | DataGridView |
Para el boton "Cargar Datos":
|
Para el ContextMenuStrip:
|
Para el DataGridView:
|
2.2 Agregar Referencia Excel
Pasos:
- Descargar Dll Aqui
- Click derecho en "Referencias" y elegir la opcion "Agregar Referencia"
- En la pestaña "Examinar" ubicar el Dll descargado previamente
- Verificar que la referencia se haya agregado correctamente tal como se muestra en la siguiente imagen:
2.3 Codificación
Ingresar el siguiente código dentro del Formulario
Imports System.Data Imports System.Data.SqlClient Public Class Form1 Dim dt As New DataTable Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Llamamos a la subrutina que crea el datatable CrearTabla() End Sub 'Subrutina para Crear el DataTable Private Sub CrearTabla() If dgvExportar.Columns.Count = 0 Then With dt.Columns .Add("Cliente_Id") .Add("Cli_Nombres") .Add("Cli_FechaNac") .Add("Cli_Sexo") .Add("Cli_Dni") End With dgvExportar.DataSource = dt With dgvExportar .Columns(0).HeaderText = "Id" .Columns(0).Width = 70 .Columns(1).HeaderText = "Nombres" .Columns(1).Width = 180 .Columns(2).HeaderText = "Fecha Nacimiento" .Columns(2).Width = 75 .Columns(3).HeaderText = "Sexo" .Columns(3).Width = 40 .Columns(4).HeaderText = "Dni" .Columns(4).Width = 70 End With End If End Sub Private Sub btnCargarDatos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCargarDatos.Click 'Cadena de conexion a la BD 'Nota: Configurar password Dim cadconex As String = "server=.;database=Bd_Tutoriales;user id=sa; password=xxxx" Dim cn As New SqlConnection(cadconex) Dim cmd As New SqlCommand Dim da As New SqlDataAdapter Try With cmd .Connection = cn 'Consultamos en la BD los campos necesarios que seran llenados en el DataTable .CommandText = "select cliente_id,cli_nombre+' '+cli_apellidos as cli_nombres,cli_fechanac,cli_sexo,cli_dni from cliente" .CommandType = CommandType.Text End With da.SelectCommand = cmd 'Llenamos el datatable da.Fill(dt) Catch ex As Exception MsgBox(ex.ToString) End Try End Sub 'Funcion para Exportar a Excel Private Function Exportando_a_Excel(ByVal vDt As DataTable, ByVal vGrid As DataGridView) As Boolean Dim xls As New Excel.Application With xls .Visible = True .Workbooks.Add() Dim I, J, K As Integer For J = 0 To vGrid.Columns.Count - 1 If vGrid.Columns(J).Visible = True Then Dim vHeader As String = vGrid.Columns.Item(J).HeaderText.ToString.Trim If K = 0 Then If vHeader <> "" Then .Cells(1, J + 1).Value = vHeader End If Else If vHeader <> "" Then .Cells(1, K + 1).Value = vHeader K = K + 1 End If End If Else If K = 0 Then K = J End If End If Next K = 0 For I = 0 To vDt.Rows.Count - 1 For J = 0 To vGrid.Columns.Count - 1 If vGrid.Columns(J).Visible = True Then If K = 0 Then If vGrid.Columns.Item(J).HeaderText.ToString.Trim <> "" Then If IIf(vGrid.Columns(J).Name.ToString.Trim <> "", vGrid.Columns(J).Name.Substring(4, 1).ToUpper, "") = "C" Then .Cells(I + 2, J + 1).numberformat = "@" End If .Cells(I + 2, J + 1).Value = vGrid.Rows(I).Cells(J).Value.ToString.Trim 'Consulta.Rows(I)(J) End If Else If vGrid.Columns.Item(J).HeaderText.ToString.Trim <> "" Then If IIf(vGrid.Columns(J).Name.ToString.Trim <> "", vGrid.Columns(J).Name.Substring(4, 1).ToUpper, "") = "C" Then .Cells(I + 2, K + 1).numberformat = "@" End If .Cells(I + 2, K + 1).Value = vGrid.Rows(I).Cells(J).Value.ToString.Trim End If K = K + 1 End If Else If K = 0 Then K = J End If End If Next Next .Rows("1:1").Select() .Selection.Font.Bold = True .Cells.Select() .Selection.ColumnWidth = 0 .Cells.EntireColumn.AutoFit() .Range("A1").Select() .Sheets("Hoja1").name = "Data Exportada" .Sheets("Hoja2").delete() .Sheets("Hoja3").delete() End With Return True End Function 'Evento Click del Menu Contextual "Exportar a Excel" Private Sub tsmiXls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsmiXls.Click Exportando_a_Excel(dt, dgvExportar) End Sub End Class
Video Demostrativo