viernes, 19 de junio de 2009

martes, 9 de junio de 2009

Exportar a Excel GridView con Encabezados

protected void Exportar(GridView gv,string filename,string titulo)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

GridView gvaux = new GridView();
gvaux = gv;

Page page = new Page();
HtmlForm form = new HtmlForm();


gvaux.EnableViewState = false;
gvaux.AllowPaging = false;


page.EnableEventValidation = false;

page.DesignerInitialize();

page.Controls.Add(form);
form.Controls.Add(gvaux);


page.RenderControl(htw);

Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + "Buscador.xls");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(Encabezado(titulo) + sb.ToString());
Response.End();


}


public string Encabezado(string titulo)
{
Sesion ses = (Sesion)Session["Sesion"];
DateTime dt1 = DateTime.Now;
string Header = "";

Header = Header + "Titulo";
Header = Header + "

";
Header = Header + "";
Header = Header + "Generado el ";
Header = Header + String.Format("{0: dd/MM/yy - HH:mm }", dt1);
Header = Header + "
";
Header = Header + "

";
Header = Header + "";
Header = Header + titulo;
Header = Header + "
";
Header = Header + "
";
Header = Header + "

";
return Header;
}