none
Exportar Grid Excel RRS feed

  • Pergunta

  • Ola Boa tarde Estou tentando exportar o meu Grid Para o Excel. Só que não estou conseguindo . estou usando o seguinte método.

        string attachment = "attachment; filename=contatos.xls";
    
        Response.ClearContent();
    
     
    
        Response.AddHeader("content-disposition", attachment);
    
        Response.ContentType = "application/ms-excel";
    
     
    
        System.IO.StringWriter sw = new System.IO.StringWriter();
    
        HtmlTextWriter htw = new HtmlTextWriter(sw);
    
    
    
        gvRelatorioHoje.RenderControl(htw);
    
        Response.Write(sw.ToString());

    Alguem poderia me ajudar Por favor

    quarta-feira, 25 de março de 2015 13:43

Respostas

  • problema Resolvido!

    E a solução ficou assim!

    public void ExportaExcel()
            {
                Response.Clear();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
                Response.Charset = "";
                Response.ContentType = "application/vnd.ms-excel";
                using (StringWriter sw = new StringWriter())
                {
                    HtmlTextWriter hw = new HtmlTextWriter(sw);
    
                    //To Export all pages
                    gvRelatorioHoje.AllowPaging = false;
                    this.CarregaDados();
    
                    gvRelatorioHoje.HeaderRow.BackColor = Color.White;
                    foreach (TableCell cell in gvRelatorioHoje.HeaderRow.Cells)
                    {
                        cell.BackColor = gvRelatorioHoje.HeaderStyle.BackColor;
                    }
                    foreach (GridViewRow row in gvRelatorioHoje.Rows)
                    {
                        row.BackColor = Color.White;
                        foreach (TableCell cell in row.Cells)
                        {
                            if (row.RowIndex % 2 == 0)
                            {
                                cell.BackColor = gvRelatorioHoje.AlternatingRowStyle.BackColor;
                            }
                            else
                            {
                                cell.BackColor = gvRelatorioHoje.RowStyle.BackColor;
                            }
                            cell.CssClass = "textmode";
                        }
                    }
    
                    gvRelatorioHoje.RenderControl(hw);
    
                    //style to format numbers to string
                    string style = @"<style> .textmode { } </style>";
                    Response.Write(style);
                    Response.Output.Write(sw.ToString());
                    Response.Flush();
                    Response.End();
                }
            }
    
            public override void VerifyRenderingInServerForm(Control control)
            {
                /* Verifies that the control is rendered */
            }

    Vlw Brigado

    quarta-feira, 25 de março de 2015 14:25

Todas as Respostas

  • Conseguir Resolver o erro com o seguinte codigo.

    public void ExportaExcel()
            {
                Response.Clear();
    
                Response.AddHeader("content-disposition", "attachment; filename=FileName.xls");
    
                Response.Charset = "";
    
                // If you want the option to open the Excel file without saving than
    
                // comment out the line below
    
                // Response.Cache.SetCacheability(HttpCacheability.NoCache);
    
                Response.ContentType = "application/vnd.xls";
    
                System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    
                System.Web.UI.HtmlTextWriter htmlWrite =
                new HtmlTextWriter(stringWrite);
    
                gvRelatorioHoje.RenderControl(htmlWrite);
    
                Response.Write(stringWrite.ToString());
    
                Response.End();
            }
    
            public override void VerifyRenderingInServerForm(Control control)
        {
    
    
        }

    so que agora ele nao carrega nada no excel

    quarta-feira, 25 de março de 2015 13:57
  • problema Resolvido!

    E a solução ficou assim!

    public void ExportaExcel()
            {
                Response.Clear();
                Response.Buffer = true;
                Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
                Response.Charset = "";
                Response.ContentType = "application/vnd.ms-excel";
                using (StringWriter sw = new StringWriter())
                {
                    HtmlTextWriter hw = new HtmlTextWriter(sw);
    
                    //To Export all pages
                    gvRelatorioHoje.AllowPaging = false;
                    this.CarregaDados();
    
                    gvRelatorioHoje.HeaderRow.BackColor = Color.White;
                    foreach (TableCell cell in gvRelatorioHoje.HeaderRow.Cells)
                    {
                        cell.BackColor = gvRelatorioHoje.HeaderStyle.BackColor;
                    }
                    foreach (GridViewRow row in gvRelatorioHoje.Rows)
                    {
                        row.BackColor = Color.White;
                        foreach (TableCell cell in row.Cells)
                        {
                            if (row.RowIndex % 2 == 0)
                            {
                                cell.BackColor = gvRelatorioHoje.AlternatingRowStyle.BackColor;
                            }
                            else
                            {
                                cell.BackColor = gvRelatorioHoje.RowStyle.BackColor;
                            }
                            cell.CssClass = "textmode";
                        }
                    }
    
                    gvRelatorioHoje.RenderControl(hw);
    
                    //style to format numbers to string
                    string style = @"<style> .textmode { } </style>";
                    Response.Write(style);
                    Response.Output.Write(sw.ToString());
                    Response.Flush();
                    Response.End();
                }
            }
    
            public override void VerifyRenderingInServerForm(Control control)
            {
                /* Verifies that the control is rendered */
            }

    Vlw Brigado

    quarta-feira, 25 de março de 2015 14:25
  • Bom dia Guilherme,

    Que bom que conseguiu solucionar seu problema! Obrigado por nos retornar com a solução, agora ficará mais fácil para o próximo que passar pela mesma situação.

    Qualquer dúvida estamos à disposição.

    Abraço!


    Eduardo Romero

    Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolucao mais tarde.

    sexta-feira, 27 de março de 2015 14:26
    Moderador