Para ver y/o guardar el contenido de un gridview en un documento excel, vamos a utilizar un botón en cuyo evento click implementaremos la exportación.
Aunque nuestro gridview tenga paginación exportará todos sus registros.
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
Page page = new Page();
HtmlForm form = new HtmlForm();
GridView1.EnableViewState = false;
GridView1.AllowPaging = false;
GridView1.DataBind();
page.EnableEventValidation = false;
page.DesignerInitialize();
page.Controls.Add(form);
form.Controls.Add(GridView1);
page.RenderControl(htw);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/ms-excel";
Response.AddHeader("Content- Disposition", "attachment;filename=nombreDocumento.xls");
Response.Charset = "UTF-8";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentEncoding = System.Text.Encoding.Default;
Response.Write(sb.ToString());
Response.End();
}
3 comentarios:
good me sirvio mucho aqui te pongo el codigo en vb:
Dim sb As New StringBuilder()
Dim sw As New IO.StringWriter(sb)
Dim htw As New HtmlTextWriter(sw)
Dim pagina As Page = New Page
Dim form As New HtmlForm
GridView3.EnableViewState = False
GridView3.AllowPaging = False
GridView3.DataBind()
pagina.EnableEventValidation = False
pagina.DesignerInitialize()
pagina.Controls.Add(form)
form.Controls.Add(GridView3)
pagina.RenderControl(htw)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=Request.xls")
Response.Charset = "UTF-8"
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ContentEncoding = System.Text.Encoding.[Default]
Response.Write(sb.ToString())
Response.End()
Muchas gracias a ti Erick!
Muchas gracias me sirvió mucho.
Saludos.
Publicar un comentario