martes, 25 de noviembre de 2008

Exportar un grid a excel

Los reportes son un dolor de cabeza siempre una forma de reportar rapidamente es utilizar excel que es un magnifica herramienta, asi que yo lo que hago en los grid de consultas pongo un boton que diga exportar a excel el codigo del mismo deberia ser así(recuerde ya tener llenado el grid):


if (GridView1.Rows.Count == 0)
{
return;
}

if (GridView1.Rows.Count < 65536)
{
GridView1.AllowPaging = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
HtmlForm frm = new HtmlForm();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment;filename=ReporteSol.xls");
Response.Charset = "";
EnableViewState = false;
Controls.Add(frm);
frm.Controls.Add(GridView1);
frm.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
llenar(); // aqui tiene que llamar asu llenado del grid de nuevo

}


}


no olvide agregar este using
using System.IO;

Si usan esa cosas que se llama Visual Basic = )

If GridEX1.Rows.Count = 0 Then
Return
End If

If GridEX1.RowCount < 65535 Then
GridEX1.AllowPaging = False
Dim tw As New StringWriter()
Dim hw As New HtmlTextWriter(tw)
Dim frm = New HtmlForm()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=ReporteSol.xls")
Response.Charset = ""
EnableViewState = False
Controls.Add(frm)
frm.Controls.Add(GridEX1)
frm.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
llenar()
End If

1 comentario:

Julio daniel dijo...

EXCELENTE ARTICULO..!!!!! :) SOLO RECUERDEN... AGREGAR LA LIBRERIA SYSTEM.IO
XD XD XD