El Blog del Leo

Compartiendo lo que aprendo

Exportar GridView a Excel

Nunca está demás saber como se exporta una grilla a Excel. La verdad si uno se pone a pensar como programáticamente lo hago pensaría que es muy difícil, pero la verdad que no lo es, y lo explicare en unos cuantos pasos.



1er paso. Crear un botón que será quien cree el Excel en base a la grilla. Este botón debe estar fuera de un postback asíncrono (Update Panel)



2o paso. En el evento Click del botón para exportar, poner las siguientes líneas de código. Se crea un objeto que simula una pagina web y que contiene un formulario. A este formulario le agregamos la grilla que va a ser exportable y decimos que esta pagina será una salida. Formateamos la salida a tipo Excel.






3er paso. Disfrutar de que hicimos una grilla exportable a Excel. Ideal para informes.


El código necesario (aparte de la imagen):
Private Sub exportarExcel()
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
Dim lblEncabezado As Label = New Label
lblEncabezado.Text = "Nombre del encabezado"
gvExportar.EnableViewState = False
pagina.EnableEventValidation = False
pagina.DesignerInitialize()
pagina.Controls.Add(form)
form.Controls.Add(lblEncabezado)
form.Controls.Add(gvExportar)   'Tu gridview a exportar
pagina.RenderControl(htw)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=ArchivoExcel.xls") 'Nombre del archivo de salida
Response.Charset = "UTF-8"
Response.ContentEncoding = Encoding.Default
Response.Write(sb.ToString())
Response.End()
End Sub

Espero que les sirva.

3 comentarios:

Mijael Stand dijo...

Deberias pegar el codigo para poder ayudar mejor y no poder solamente una imagen =)

Leonardo dijo...

Pense que con la imagen se entenderia mas :P
Alli tienes el codigo necesario para exportar a excel desde un gridview

CIM dijo...

bien...pero si necesito exportar una grilla paginada?...funciona igual?

Seguidores

Certificaciones

Microsoft Certified Professional

Mis Tweets

Twitter