Enlaces patrocinados:

Trucos de ASP.NET Exportar Datagrid en Excel

La exportación de un datagrid a Excel es relativamente sencilla. Podemos exportar un datagrid a Excel de la siguiente manera:


' Damos la salida como attachment con el nombre de Testeo.xls.


Response.AddHeader("content-disposition", "attachment; filename=Testeo.xls")


' Especificamos el tipo de salida.


Response.ContentType = "application/vnd.ms-excel"


' Asociamos la salida con la codificación UTF7 (para poder visualizar los acentos correctamente)


Response.ContentEncoding = System.Text.Encoding.UTF7


Response.Charset = ""


Me.EnableViewState = False


Dim tw As New System.IO.StringWriter


Dim hw As New System.Web.UI.HtmlTextWriter(tw)


g.RenderControl(hw)  ' g es el DATAGRID


'Escribimos el HTML en el Explorador


Response.Write(tw.ToString())


' Terminamos el Response.


Response.End()


Comentarios sobre Exportar Datagrid en Excel


Wilmar Cabezas dice:

Muy bien, simple y práctico. Felictaciones y Gracias.
Comentario publicado 09/03/2010 20:33:00

MFc dice:

Excelente men!!! de la que me salvaste XD!!
Comentario publicado 17/04/2010 0:28:00

Fernando G. dice:

Para los casos del asp.net 2005 solo cambia el content type por este: "application/excel".
Comentario publicado 02/07/2010 1:08:00

Miguel dice:

Pero todo eso donde lo pongo?
Comentario publicado 15/09/2010 1:02:00

Fernando G. dice:

En algun boton que diga exportar o algo asi. El grid lo deberias crear como global, o mandarlo como un parametro, del lado del servidor, donde programas en lenguaje Visual Basic. en ASP (osea javascript, php y/o html) no he encontrado la manera de migrar una tabla de la web a Excel. Esta seria la mejor manera
Comentario publicado 15/09/2010 2:56:00

Oswald dice:

ahi me tambien me funciono de maravilla, solo que en el archivo de excel me baja tambien una imagen que tengo en la web, alguien sabe como le puedo hacer para que no me baje esa imagen??....se los agradesco.saludos
Comentario publicado 13/10/2010 0:26:00

jesus lozano garcia dice:

Me manda este error al ejecutar por favor alguien me podria asesorar el porque ??? "El control 'ctl00_ctl00_CPHBody_childCPHBody_GridView1' de tipo 'GridView' debe colocarse dentro de una etiqueta de formulario con runat=server"
Comentario publicado 13/12/2010 23:44:00

Fernando G. dice:

Podrias intentar crear un marco o tabla en html y desplegarlo ahi. Con el runat=server. Mas bien seria un marco porque no recuerdo que en las tablas manejes el runat=server. siempre es bueno que te des una ojeada a los objetos de Ajax, porque ahi hay buenas herramientas a utilizar.
Comentario publicado 17/12/2010 18:42:00

Diego Lopez dice:

Hola, lo que necesitaría es poder exportar los datos a excell, pero estoy programando en asp.net, pero con lenguaje visual basic....no se si me estoy explicando bien. Alguna ayuda? Muchas gracias
Comentario publicado 01/07/2011 14:42:00

osvaldo dice:

Para Diego Lopez: este codigo es el mismo para VB.net, no debes tener problemas. la funcion la puedes mandar a llamar desde un boton o un link button.....te pongo mi ejemplo.Saludos 'Give the output as attachment with the name of NoRecordsProcessed.xls Response.AddHeader("content-disposition", "attachment; filename=NoRecordsProcessed.xls") 'Specify the type of output Response.ContentType = "application/vnd.ms-excel" 'Associate with the coding output UTF7 Response.ContentEncoding = System.Text.Encoding.UTF7 Response.Charset = "" EnableViewState = False Dim tw As New System.IO.StringWriter Dim hw As New System.Web.UI.HtmlTextWriter(tw) C1NoRecordsProcessed.RenderControl(hw) 'C1NoRecordsProcessed is the WEBGRID 'Write the HTML in the browser Response.Write(tw.ToString()) 'We ended the Response Response.End()
Comentario publicado 01/07/2011 17:50:00

Diego López dice:

Muchas gracias Osvaldo, lo he probado, pero me está dando un error, porque me dice que el datagrid debe estár dentro una etiqueta FORM, con runat=server, y no sé como solucionarlo.
Comentario publicado 05/07/2011 14:36:00
Dejar un comentario

Nombre:

Mail:

Web:

Comentario:

Código de seguridad

Captcha

Inserta el código de seguridad