Desenvolvimento - ASP. NET

Exportar arquivos (listas) para o Excel

Veja neste artigo como exportar uma lista para excel, sem usar componentes de terceiro.

por Roberto Pereira do Vale



Exportar arquivos (listas) para o Excel

Exportar arquivos (listas) para o Excel

Sei que existe uma gama gigantesca de formas para realizar esta tarefa, existem amigos que até utilizam componentes de terceiros.

Logo quando comecei a programar em asp.net ( 5 anos atrás) tive que realizar esta tarefa e elaborei esta forma simples de fazer, nunca encontrei uma outra forma que seja mais simples que esta. Claro que esta aberto a criticas, mas para quem programa em WebForms acredito que seja uma boa idéia.

public void ExportarExcel_Click()

    {

        var listCarregaExcel = (from x in (BO.SelecioDados(p))

                                select new { Nome = x.ch_Nome,

                                                    CPF = x.num_CPF,

                                                    TELEFONE = x.Celular,

                                                     DATA = x.dt_EnvioMP.ToString("dd/MM/yyyy"),

                                                    CARTAO = x.Num_Cartao,

                                                     STATUS = x.STATUS

                                                   });

        if (listCarregaExcel != null)

        {

            DataGrid rptExcel = new DataGrid();

            rptExcel.DataSource = listCarregaExcel;

            rptExcel.DataBind();

            Response.Clear();

            Response.Buffer = true;

            Response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");

            Response.AddHeader("content-disposition", "attachment;filename=Relatorio.xls");

            Response.Charset = "";

            Response.ContentType = "application/vnd.ms-excel";

            System.IO.StringWriter stringWrite = new System.IO.StringWriter();

            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

            rptExcel.RenderControl(htmlWrite);

            Response.Write(stringWrite.ToString());

            rptExcel = null;

            listCarregaExcel = null;

            Response.End();

        }

        else

        {

            ScriptManager.RegisterStartupScript(this, Page.GetType(), "Mesage", "alert('Não existem dados para gerar planilha');", true);

        }

    }

È isso espero que seja útil.

Roberto Vale

Roberto Pereira do Vale

Roberto Pereira do Vale