Skip to content

Exportar ASP GridView como Excel

by en 10 agosto, 2011

Cuando se desarrollan aplicaciones web, tarde o temprano tendremos que crear reportes que se puedan exportar a Excel.

Quizás la manera más fácil de lograr un reporte en Excel usando ASP.NET, sea exportar una GridView. En internet se pueden encontrar muchos métodos para lograrlo. Acá les dejo uno que me dieron acá en mi trabajo.

GridView MyGridView = new GridView();
DataTable datos = GetSomeRandomDataFromWhereverYouWant();
MyGridView.DataSource = datos;
MyGridView.DataBind();
StringBuilder sb;
StringWriter sw;
HtmlTextWriter htw;
sb = new StringBuilder();
sw = new StringWriter(sb);
htw = new HtmlTextWriter(sw);
Response.Clear(); // Limpia la respuesta
Response.ContentType = "application/vnd.ms-excel"; //indica que el archivo será un EXCEL
Response.AddHeader("Content-Disposition", "attachment;filename=MyFileName_" + DateTime.Now.ToString("ddMMyyyy") + ".xls"); // Indica el nombre del archivo
MyGridView.RenderControl(htw);
Response.Output.Write(sw.ToString());
Response.End();

En la línea 14 ocurre gran parte de la magia. Lo que hace es escribir en el HtmlTextWriter el HTML que generaría la grilla, para luego, en la siguiente linea, escribir el StringWriter del HtmlTextWriter. El StringWriter tendrá todo el html de la grilla (parece trabalenguas XD).

Enjoy!

From → ASP.NET, C#

3 comentarios
  1. Neko permalink

    Muchas gracias me ahorraste unos dolores de cabeza tremendos!!

  2. Hay millones de formas de exportar a excel, esta es una de las más sencillas, sin embargo de las más útiles!

    Me alegro de haber sido de ayuda😀

  3. picazo permalink

    Buenos dias
    tengo problemas este codigo
    me marca que no puede convertir stringbuilder a stringwriter en las lineas
    08 sw = new StringWriter(sb);
    09 htw = new HtmlTextWriter(sw);
    alguin podria ayudarme por favor

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: