Neste artigo vou mostrar como podemos exportar um GridView para um arquivo texto em uma aplicação ASP .NET Web Forms usando a linguagem VB .NET. |
O GridView exibe os valores de uma fonte de dados em uma tabela onde cada coluna representa um campo e cada linha representa um registro.
O Controlador GridView permite a você selecionar, classificar e editar esses itens e também realizar a paginação de dados.
Todos esses recursos tornam o GridView um dos controles mais usados para exibir dados em aplicações ASP .NET Web Forms.
E se você precisar exportar os dados do GridView para o formato texto ?
Se não sabe como fazer isso então acompanhe o artigo e veja como é simples.
No exemplo eu vou fazer uma conexão com o banco de dados Northwind.mdf do SQL Server e acessar dados da tabela Customers para exibir no GridView.
Recursos usados:
SQL Server 2012 Express
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando a solução no VS Community
Abra o VS Community 2015 e clique em New Project;
Selecione a linguagem Visual Basic -> Web e o template ASP .NET Web Application;
Informe o nome AspNet_ExportaGridView_Texto e clique no botão OK;
A seguir escolha o template Empty e marque a opção Web Forms, sem autenticação nem hospedagem na nuvem:
Incluindo um novo Web Form no projeto e definindo a interface com o usuário
No menu Project clique em Add New Item;
Selecione o item Web Form e informe o nome Default.aspx.
Abra o arquivo Default.aspx e a partir da ToolBox inclua os seguintes controles no Web Form:
O leiaute deverá ficar conforme mostra a figura abaixo e o código gerado é mostrado ao lado :
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="AspNet_ExportaGridView_Texto._Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Exporta GridView para Texto</title>
</head>
<body>
<form id="form1" runat="server">
<h2>Macoratti .net</h2>
<hr />
<div>
<asp:GridView ID="gdvDados" runat="server" Height="257px" Width="452px"></asp:GridView>
<asp:Button ID="btnExportar" runat="server" Text="Exportar GridView" />
</div>
</form>
</body>
</html>
|
Implementando o Code-Behind no arquivo Default.aspx.vb
Vamos abrir o arquivo Default.aspx.vb e iniciar a implementação do código que vai popular o GridView e depois exportar o seu conteúdo.
Defina no início do arquivo os seguintes namespaces:
Imports System.Data.SqlClient Imports System.IO
A seguir no início da página declare as variáveis que definem a string de conexão e a instrução SQL que vamos usar :
Private ConnectionString As String = "Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True" Dim sql As String = "Select * from Customers" Acessando a tabela Customers e exibindo dados no GridView
No evento Load da página Default.aspx vamos incluir o código que acessa a tabela Customers e seleciona os dados exibindo-os no GridView:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim cn As SqlConnection = Nothing
Dim ds As New DataSet
Try
cn = New SqlConnection(ConnectionString)
cn.Open()
Dim ad As New SqlDataAdapter(sql, cn)
ad.Fill(ds)
gdvDados.DataSource = ds.Tables(0)
gdvDados.DataBind()
Catch ex As Exception
Throw ex
Finally
cn.Close()
End Try
End If
End Sub
|
Definindo o código para exportar os dados do GridView para texto
A seguir no evento Click do botão de comando - Exportar GridView - inclua o código que vai exportar os dados:
Protected Sub btnExportar_Click(sender As Object, e As EventArgs) Handles btnExportar.Click
Dim str As New StringBuilder()
Dim cn As New SqlConnection(ConnectionString)
Dim ds As New DataSet()
Try
cn.Open()
Dim ad As New SqlDataAdapter(sql, cn)
ad.Fill(ds)
Dim i As Integer
For i = 0 To ds.Tables(0).Rows.Count - 1
Dim j As Integer
For j = 0 To ds.Tables(0).Columns.Count - 1
str.Append(ds.Tables(0).Rows(i)(j).ToString())
str.Append(",")
Next j
str.Append("<br/>")
Next i
Response.Clear()
Response.AddHeader("content-disposition", "attachment;filename=ArquivoExportado.txt")
Response.Charset = ""
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ContentType = "application/vnd.text"
Dim stringWrite As New StringWriter()
Dim htmlWrite = New HtmlTextWriter(stringWrite)
Response.Write(str.ToString())
Response.End()
Catch ex As Exception
Throw ex
Finally
cn.Close()
cn.Dispose()
End Try
End Sub
|
Executando o projeto iremos obter o seguinte resultado após clicar no botão para exportar:
Ao clicar no botão de comando os dados do gridview são montados em um stringBuilder e exportados para um arquivo nomeado como ArquivoExportado.txt.
A janela Abrir com as opções para abrir ou fazer o download do mesmo é apresentada ao usuário.
Você pode decidir como formatar a saída gerada e pode também tratar o encoding do arquivo.
Pegue o projeto completo aqui: AspNet_ExportaGridView_Texto.zip
Até o próximo artigo...
Deitar-me faz em verdes pastos, guia-me
mansamente a águas tranqüilas.Refrigera a minha alma; guia-me pelas veredas da
justiça, por amor do seu nome.
Salmos 23:2,3
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#
Exportando seus dados para diversos formatos - Macoratti.net
VB .NET - Importando e tratando arquivos CSV - Macoratti.net