Despues de estar probando y probando al fin me resulto, ¿Como sacamos los datos de un GridView a un hoja de Excel?.
Primero supongo que ya tienen todos los datos en el Gridview y ya se muestra en el webForm.
Como segundo paso tenemos que agregar un boton y en el evento click agregamos el siguiente codigo:
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
Si lo corremos en este momento nos va a dar el siguiente error
Control 'GridView1' of type 'GridView' must be placed inside a form tag with runat=server.
Entonces lo que debemos hacer es agregar el metodo sobrecargado del metodo VerifyRenderingInServerForm, y dentro de este metodo no ponemos nada, de la siguiente manera:
public override void VerifyRenderingInServerForm(Control control)
{
}
Y asi ya tenemos funcionando nuestro Gridview y lo podemos exportar a excel.
Si no queremos presionar el boton para que se exporte sino que queremos que al cargar la pagina se exporte a excel lo que debemos de hacer es copiar el mismo codigo al evento load del gridview y ya, espero les sirva, dejen su comentario y nos vemos a la proxima.
octubre 14, 2007
Suscribirse a:
Comentarios de la entrada (Atom)
10 comentarios:
Interesante solución, ya que en muchas ocasiones es necesario exportar los datos para hacerlos mas transportables y presentables, espero que sigan mas post como este dandonos unos cuantos tips para herramientas como esta. Ah por cierto espero que en la proxima entrega pudieras poner unos cuantos screenshots para ver los resultados un poco mas graficos, Saludos.
Si te hicieras un manualito de ontocif del tema seria mejor .. jaja
Un manual del Onto-shit del huber quedaria bien, jaja
Disculpa la ignorancia soy muy nuevo en el uso de C# donde exactamente se coloca el
public override void VerifyRenderingInServerForm(Control control)
{
}
por que aun me aparece el error Sólo se puede llamar a RegisterForEventValidation durante Render();
me sale el mismo error qeu DarkSun como agrego ese evento
Muchisimas gracias porque la verdad que me vino de maravilla. habia probado de muchas formas y aun no habia resuelto el problema.
Queria preguntarte si cuando lo salvabas siempre te salia un cartel hablando del cambio de extencion. y si es posible eliminarlo.
Saludos
Muchas gracias, es la primera vez que encuentro como solucionar ese mensaje el exportar. Quisiera saber si hay alguna forma de exportar incluyendo varias hojas al libro de excel.
Muchas gracias.
hola, sabes estoy buscando lo siguiente.
Este codigo te exporta una hoja excel de un gridview, en mi caso tengo 2 gridview y necesito esportarlo al mismo excel en distintas hojas...
sabes como podria hacerlo??
gracias de antemano
Publicar un comentario