Prezado(a) Leitor(a), hoje eu vou falar e mostrar da forma que você entenda, como passar os dados do componente GridView para o Excel. Muitos sistemas hoje em dia precisam de exportar dados para o excel da Microsoft. Os dados estão no banco de dados e precisam ser exportados para um sistema de planilha que nesse caso é o Excel. Você já viu algum gerente que prefere trabalhar no sistema do que no excel? A maioria dos gerentes gosta de planilhas.

Usado no artigo:

Ferramenta de desenvolvimento: Visual Studio Microsoft
Linguagem C#
Banco de dados SQL Server
Plataforma ASP.NET (Web)

O artigo mostra figuras de códigos.
A ideia principal do artigo é mostrar como gerar o gridview e automaticamente fazer o download do excel já nomeado por uma página web. Funciona em qualquer browser esse código desenvolvido aqui.

Vamos para o código

O primeiro passo é colocar o GridView na tela depois de ter criado o projeto.
Na página Web .aspx e na parte HTML adicionei o componente GridView. Veja a imagem 1.1.



Imagem 1.1 - GridView na página

Crie uma página separada responsável por gerar a planilha Excel completa. Coloquei um espaçamento de 3 e a geração de colunas automáticas, falsa. Isso quer dizer que só vão aparecer as colunas que eu colocar dentro da tag Columns.

Esse GridView traz dados dos alunos de uma Universidade qualquer. Depois de adicionado os campos, precisamos preencher com os valores do banco de dados através de um objeto DataTable.

Passando para o código C#, vamos chamar dois métodos específicos. O primeiro chama os dados do banco e segundo gera o excel.

Imagem 1.2 - Método Page_Load

Dentro de entrada da página Page_Load verifico se a página não fez postback. O primeiro método preenche o grid. Lembrando que eu não vou mostrar como criar o banco de dados, fazer a conexão e select. Isso vai ficar para o canal do youtube.com/mauriciojunior01.  Veja a imagem 1.3.


Imagem 1.3 - Preenchendo o grid.

A imagem 1.3 chama na primeira linha uma classe AlunoDTO e gera uma instância. Depois disso, atribuí o parâmetro situação e ano. Esses parâmetros são específicos para buscar no meu banco de dados. 

O próximo passo foi criar uma instância AlunoBRL para chamar o método searchAlunoInscricao passando o parâmetro criado anteriormente. Para preencher os dados no grid, basta digitar essas 3 linhas, chamar o método que atribuir o DataSource do grid e para finalizar, basta chamar o DataBind(). É bem simples mandar os dados para o componente GridView.


Imagem 1.4 - Gera o excel

O próximo método é responsável por gerar o excel com o nome específico. A primeira linha mostra o Buffer Response e a segunda linha indica que terá Buffer. A linha Response.AddHeader(“”) informa que o arquivo será anexado e o nome ArquivoExcel.xls. O tipo do conteúdo será application/vn.ms-excel. Isso indica a página que o conteúdo gerado será do tipo excel.

Note que criei uma instância de StringWriter e a HTMLTextWriter passando a StringWriter. No final eu mando escrever na tela pelo comando Response.Write passando a variável.

O interessante é que toda a página será passada para o Excel. É recomendado que crie uma página sem MasterPage, adicione os códigos e chame pelo link. Espero que tenha gostado desse artigo e que seja de grande valia pra você no dia a dia.

Qualquer dúvida, enviar e-mail pelo site www.mauriciojunior.org.