Jump to content
999ANDRE999

Exportar gridview para Excel

Recommended Posts

999ANDRE999

Viva pessoal,

Tenho uma gridview com dados e eu quero exporta-la para excel. 

Utilizo este código e funciona, mas não como pretendo:

 protected void ExportGridToExcel(object sender, EventArgs e)
    {
        Response.ClearContent();
        Response.AddHeader("content-disposition", "attachment; filename=Status_Project_APT_" + DateTime.Now.ToString("yyyyMMdd") + ".xls");
        Response.ContentType = "application/excel";
        System.IO.StringWriter sw = new System.IO.StringWriter();
        HtmlTextWriter htw = new HtmlTextWriter(sw);
        GridView_project.RenderControl(htw);
        Response.Write(sw.ToString());
        Response.End();
        
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        /*Tell the compiler that the control is rendered
         * explicitly by overriding the VerifyRenderingInServerForm event.*/
    }

ao fazer a exportação, exporta tudo desformatado e não tal e qual visualizo na pagina web. Na pagina esta tudo direitinho com linhas a separar as celulas e tudo, no excel aparece tudo muito pequenino e sem as linhas a dividir as celulas, com celulas de texto alinhadas a direita e celulas numericas à esquerda e quero tudo ao centro. 

Também pretendia eliminar a primeira coluna da gridview na exportação.

alguem me consegue ajudar?

Share this post


Link to post
Share on other sites
999ANDRE999

Eliminar a coluna com o index 0 já consegui:

 GridView_project.HeaderRow.Cells[0].Visible = false;
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            GridViewRow row = GridView1.Rows[i];
            row.Cells[0].Visible = false;
        }

só falta mesmo a questão da formatação. O objetivo era poupar tempo com a exportação, mas tendo que formatar tudo a mão o trabalho que estou a ter é em vão.

:(

Share this post


Link to post
Share on other sites
999ANDRE999

Já consegui formatar da maneira como queria assim (não sei se foi a melhor opção, mas resulta):

 GridView_project.Style.Add("font-size", "16px");

       for (int i = 0; i <= 18; i++)
       {
           GridView_project.Columns[i].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
           GridView_project.Columns[i].ItemStyle.VerticalAlign = VerticalAlign.Middle;
           GridView_project.Columns[i].ItemStyle.BorderStyle = BorderStyle.Solid;
           GridView_project.Columns[i].ItemStyle.BorderColor = Color.FromName("#565656");
       }

Agora o meu ultimo problema, acho eu :cheesygrin:, é que aparece a formatação do fundo que tenho até à coluna XFD, mesma não existindo dados.

Mas só nas linhas de cabeçalho e rodapé da gridview.

Alguma ideia?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.