Desenvolvimento - Visual Basic .NET
Gerando Planilha a partir de uma tabela Sql Server e VB.NET
Neste artigo iremos aprender a gerar uma planilha do Excel a partir de dados do SqlServer e Visual Studio 2005/ VB.Net.
por Marcelo BicalhoPara a proposta de geração iremos seguir os passos abaixo:
1º Passo: Crie a tabela conforme o código abaixo. Após a criação insira registros na mesma.
Create table Funcionarios(
FuncCodigo int not null,
FuncNome Varchar(50),
FuncDataNascimento datetime,
FuncSalario Decimal(18,2))
2º Passo: Definições do Projeto.
- Crie um projeto do tipo Windows Application com VB.NET.
- Adicione uma referência conforme a Ilustração 1 e Ilustração 2.
Ilustração 1
Ilustração 2
3º Passo: Codificação.
- Insira antes da declaração da classe de formulário as linhas:
Imports System.Data
Imports System.Data.SqlClient
- Insira um botão no formulário e para o mesmo insira o código abaixo:
"Recuperação de dados do Banco de Dados ---------------------------------------------------------------
Dim conn As New SqlConnection("Server=MARCELO\SQLEXPRESS; uid=sa; pwd=123456")
conn.Open()
Dim ds As DataSet
Dim dt As DataTable
Dim da As SqlDataAdapter
Dim cmd As SqlCommand
cmd = New SqlCommand()
cmd.CommandType = CommandType.Text
cmd.Connection = conn
cmd.CommandText = "SELECT * FROM Funcionarios"
da = New SqlDataAdapter(cmd)
ds = New DataSet()
da.Fill(ds)
dt = ds.Tables(0)
cmd.Dispose()
da.Dispose()
conn.Dispose()
"Criação do arquivo em Excel --------------------------------------------------------------------------
Dim objExcel As Microsoft.Office.Interop.Excel.Application
Dim Pasta1 As Microsoft.Office.Interop.Excel.Workbook
Dim Plan1 As Microsoft.Office.Interop.Excel.Worksheet
"Define uma aplicação em Excel
objExcel = New Microsoft.Office.Interop.Excel.Application()
"Define uma (Pasta) (Arquivo de planilhas)
Pasta1 = objExcel.Workbooks.Add()
"Define uma planilha
Plan1 = objExcel.Worksheets.Add()
Plan1.Name = "Consulta de Documento"
Plan1.Activate()
Dim i As Integer
Dim linha As Integer = 4
"Definindo Títulos
objExcel.ActiveSheet.Range("A1:D1").merge()
objExcel.ActiveSheet.Cells(1, 1).Font.Bold = True
objExcel.ActiveSheet.Cells(1, 1).Value = "Gerando Planilha com VB.NET"
objExcel.ActiveSheet.cells(1, 1).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter
objExcel.ActiveSheet.Cells(3, 1).Value = "Código"
objExcel.ActiveSheet.Cells(3, 2).Value = "Nome"
objExcel.ActiveSheet.Cells(3, 3).Value = "Data Nascimento"
objExcel.ActiveSheet.Cells(3, 4).Value = "Salário"
"Preenchendo Células
For i = 0 To dt.Rows.Count - 1
linha += 1
objExcel.ActiveSheet.Cells(linha, 1).Value = dt.Rows(0).Item("FuncCodigo")
objExcel.ActiveSheet.Cells(linha, 2).Value = dt.Rows(0).Item("FuncNome")
objExcel.ActiveSheet.Cells(linha, 3).Value = dt.Rows(0).Item("FuncDataNascimento")
objExcel.ActiveSheet.Cells(linha, 4).Value = dt.Rows(0).Item("FuncSalario")
objExcel.ActiveSheet.Cells(linha, 1).NumberFormat = "00000"
objExcel.ActiveSheet.Cells(linha, 4).NumberFormat = "###.###.##0,00"
Next
"Formatando Colunas
objExcel.ActiveSheet.Columns(1).EntireColumn.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter
objExcel.ActiveSheet.Columns(2).EntireColumn.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignLeft
objExcel.ActiveSheet.Columns(3).EntireColumn.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter
objExcel.ActiveSheet.Columns(4).EntireColumn.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight
For x As Integer = 1 To 4
objExcel.ActiveSheet.Cells(3, x).Font.Bold = True
objExcel.ActiveSheet.Columns(x).EntireColumn.AutoFit()
Next
"Desenhando Bordas
objExcel.ActiveCell.Cells(1, 1).Borders.LineStyle = Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft
objExcel.ActiveCell.Cells(1, 2).Borders.LineStyle = Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft
objExcel.ActiveCell.Cells(1, 3).Borders.LineStyle = Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft
objExcel.ActiveCell.Cells(1, 4).Borders.LineStyle = Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft
For y As Integer = 3 To linha
For z As Integer = 1 To 4
objExcel.ActiveCell.Cells(y, z).Borders.LineStyle = Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft
objExcel.ActiveCell.Cells(1, 1).Borders.LineStyle = Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft
Next
Next
"Tipo e Tamanho de Fonte
With objExcel.ActiveSheet.Cells.Font
.Name = "Arial"
.Size = 10
End With
objExcel.Application.Visible = True
objExcel = Nothing
Pasta1 = Nothing
Plan1 = Nothing
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET