|
![]() |
![]() |
Neste tutorial vamos rever como podemos exportar dados a partir de um controle DataGridView para uma planilha Excel usando a linguagem VB .NET. |
![]() |
Os recursos usados no projeto deste artigo foram:
Criando o projeto no VS 2015 Community
Abra o VS 2015 Community e crie um novo projeto (File-> New Project) com o nome Exportar_Excel usando o template Windows Forms Application;
No formulário form1.vb inclua os seguintes controles:
Disponha os controles no formulário conforme o leiaute abaixo:
![]() |
No menu PROJECT clique em Add Reference e inclua uma referência ao Microsoft Excel conforme a seguir:
![]() |
Após isso defina o seguinte namespace no formulário:
Imports
Microsoft.Office.InteropA seguir inclua o código no início do formulário que cria um objeto que representa a aplicação Excel:
Dim XcelApp As New Excel.Application()A primeira tarefa será preencher o controle DataGridView com dados e podemos fazer isso de diversas formas : importar de um arquivo XML, carregar a partir de um banco de dados, de um arquivo texto, etc.
A mais simples é criar um DataTable, definir alguns dados e exibi-los no DataGridView.
Para isso vamos criar uma rotina chamada CarregaGrid() com o seguinte código:
Private Sub carregaGrid()
Try
Dim dt As New DataTable
dt.Columns.Add("Codigo", GetType(Integer))
dt.Columns.Add("Nome", GetType(String))
dt.Columns.Add("Admissao", GetType(DateTime))
dt.Columns.Add("Setor", GetType(Integer))
dt.Columns.Add("Salario", GetType(Double))
Dim dr As DataRow = dt.NewRow()
dr("Codigo") = 1
dr("Nome") = "Macoratti"
dr("Admissao") = DateTime.Now
dr("Setor") = 20
dr("Salario") = 15000
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("Codigo") = 2
dr("Nome") = "Miriam"
dr("Admissao") = DateTime.Now
dr("Setor") = 30
dr("Salario") = 25000
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("Codigo") = 3
dr("Nome") = "Jefferson"
dr("Admissao") = DateTime.Now
dr("Setor") = 40
dr("Salario") = 18000
dt.Rows.Add(dr)
dgvDados.DataSource = dt
Catch ex As Exception
MessageBox.Show("Erro " + ex.Message)
End Try
End Sub
|
A rotina acima será chamada no evento Load do formulário :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
carregaGrid()
End Sub
|
No evento Click do botão - Exportar para o Excel >> - temos o código onde percorremos cada linha e célula do DataGridView e exportando para o Excel:
Private Sub btnExportar_Click(sender As Object, e As EventArgs) Handles btnExportar.Click
If dgvDados.Rows.Count > 0 Then
Try
XcelApp.Application.Workbooks.Add(Type.Missing)
For i As Integer = 1 To dgvDados.Columns.Count
XcelApp.Cells(1, i) = dgvDados.Columns(i - 1).HeaderText
Next
'
For i As Integer = 0 To dgvDados.Rows.Count - 2
For j As Integer = 0 To dgvDados.Columns.Count - 1
XcelApp.Cells(i + 2, j + 1) = dgvDados.Rows(i).Cells(j).Value.ToString()
Next
Next
'
XcelApp.Columns.AutoFit()
'
XcelApp.Visible = True
Catch ex As Exception
MessageBox.Show("Erro : " + ex.Message)
XcelApp.Quit()
End Try
End If
End Sub
|
A seguir vemos os dados do DataGridView :
![]() |
E a seguir o resultado final do processamento após a exportação para o Excel:
![]() |
Para concluir inclua no evento Click do botão Encerrar o código que fecha o Excel e encerra a aplicação:
Private Sub btnEncerrar_Click(sender As Object, e As EventArgs) Handles btnEncerrar.Click
XcelApp.Quit()
XcelApp = Nothing
Me.Close()
End Sub
|
Simples, prático e útil...
Pegue projeto completo
aqui :
Exportar_Excel.zip
E disse-lhe Jesus: Eu vim a este mundo
para juízo, a fim de que os que não vêem vejam, e os que vêem sejam cegos.
João 9:39
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#