miércoles, 27 de mayo de 2015

Exportar GridView a Excel (ASP.Net)

Una vez que tengamos lleno nuestro GridView llamado GridView1, crearemos un botón que llama el código a exportar.
Siempre ten en cuenta crear un objeto llamado Form con la clase HtmlForm.
El código no funciona dentro de controles que hacen rendending como Update Panel. 

        Dim sb As StringBuilder = New StringBuilder()
        Dim sw As StringWriter = New StringWriter(sb)
        Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
        Dim pagina As Page = New Page
        Dim form = New HtmlForm
        Me.GridView1.EnableViewState = False
        pagina.EnableEventValidation = False
        pagina.DesignerInitialize()
        pagina.Controls.Add(form)
        form.Controls.Add(Me.GridView1)
        pagina.RenderControl(htw)
        Response.Clear()
        Response.Buffer = True
        Response.ContentType = "application/vnd.ms-excel"
        Response.AddHeader("Content-Disposition", "attachment;filename=mi_reporte.xls")
        Response.Charset = "UTF-8"
        Response.ContentEncoding = Encoding.Default
        Response.Write(sb.ToString())
        Response.End()

Comparte