miércoles, 11 de junio de 2008

Descargar GridView en Formato Excel

Una funcion muy útil y sencilla para exportar el contenido de un GridView a un archivo de excel, compatible con cualquier navegador. Aqui el codigo:

Dim sb As StringBuilder = New StringBuilder()
Dim SW As System.IO.StringWriter = New System.IO.StringWriter(sb)
Dim htw As HtmlTextWriter = New HtmlTextWriter(SW)
Dim Page As Page = New Page()
Dim form As HtmlForm = New HtmlForm()
GV1.EnableViewState = False
Page.EnableEventValidation = False
Page.DesignerInitialize()
Page.Controls.Add(form)
form.Controls.Add(GV1)
Page.RenderControl(htw)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel" 'vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=" & NombreFichero)
Response.Charset = "UTF-8″"
Response.ContentEncoding = Encoding.Default
Response.Write(sb.ToString())
Response.End()

Donde GV1 es el nombre del control GridView a exportar y NombreFichero es una variable de tipos string, con el nombre del archivo, por ejemplo:
Dim NombreFichero as string = "probando.xls"

De cualquier forma el mismo navegador da la opción al usuario a guardarlo con el nombre que el quiera.

No hay comentarios: