por Cesar Cassiano Schimanco

Converter DataSet para Excel - ASP.NET - C#

Muitas vezes precisamos exportar os dados de uma consulta SQL para uma planilha do Excel e para facilitar esse trabalho podemos fazer assim:
Dados da consulta SQL -> DataSet -> GridView -> XLS.

using System.IO;
using System.Data;
using System.Data.SqlClient;
...

protected void Page_Load(object sender, EventArgs e)
{
   using (SqlConnection Conn = new SqlConnection(sConnectionString))
   {
       SqlCommand cmd = new SqlCommand("SELECT nome, email FROM  usuarios", Conn);
       SqlDataAdapter da = new SqlDataAdapter(cmd);
       DataSet ds = new DataSet();
       da.Fill(ds, "contato");

       DataSetParaExcel(ds, "planilia.xls");
   }
}

public void DataSetParaExcel(DataSet ds, string sNome)
{
   //Limpar o conteudo
   Response.Clear();
   //Seta o ContentType para xls
   Response.ContentType = "application/vnd.ms-excel";
   //Seta o tipo e o nome do arquivo
   Response.AddHeader("Content-Disposition", "attachment;filename=" + sNome);
   //Abaixo codifica os caracteres para o alfabeto latino
   Response.ContentEncoding = System.Text.Encoding.GetEncoding("Windows-1252");
   Response.Charset = "ISO-8859-1";
   //Desabilita o ViewState
   EnableViewState = false;

   // Cria o StringWriter
   using (StringWriter sw = new StringWriter())
   {
       using (HtmlTextWriter htw = new HtmlTextWriter(sw))
       {
           //Cria um GridView
               GridView gv = new GridView();
               gv.DataSource = ds.Tables[0];
               gv.DataBind();
               //Renderiza
               gv.RenderControl(htw);
               Response.Write(sw.ToString());
               Response.End();
       }
   }
}


 

Comentários

Carregando comentários

Postar um novo comentário



Processando...