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:
Deberias pegar el codigo para poder ayudar mejor y no poder solamente una imagen =)
Pense que con la imagen se entenderia mas :P
Alli tienes el codigo necesario para exportar a excel desde un gridview
bien...pero si necesito exportar una grilla paginada?...funciona igual?
Publicar un comentario