Exportar DataGrid a Excel en ASP .NET
La forma mas, MAS, facil de exportar a Excel algo desde ASP .NET es mediante un datagrid, su metodo RenderControl y enviando ese resultado mediante el response de la pag web.
En serio... es facil xD
Later
Tora
/// <summary>
/// Click en el Boton de Exportacion a Excel en el aspx.cs
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExportarXLS_Click(object sender, System.EventArgs e)
{
ExportarXls oXls = new ExportarXls();
string fileName = "Reporte.xls";
r.exportarFile(dgResult, fileName, Page.Response);
}
public class ExportarXls
{
public ExportarXls()
{
}
/// <summary>
/// Exporta un Datagrid a un "Excel" desde un ASPX
/// </summary>
/// <param name="dg">DataGrid a exportar</param>
/// <param name="file">Nombre del archivo de excel</param>
/// <param name="response">HttpResponse de la pagina que hace el llamado</param>
/// <remarks>Author: TORAVALENZUELA</remarks>
public void exportarFile(System.Web.UI.WebControls.DataGrid dg, string file, System.Web.HttpResponse response)
{
System.Text.StringBuilder sBuilder = new System.Text.StringBuilder();
System.IO.StringWriter stringWrite = new System.IO.StringWriter(sBuilder);
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
try
{
htmlWrite.Write("<p>");
dg.RenderControl(htmlWrite);
htmlWrite.Write("</p>");
}
catch (System.Exception ex)
{
throw (ex);
}
response.Clear();
response.Charset = "";
response.ContentEncoding = System.Text.Encoding.Default;
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment; filename=" + file);
response.Write(sBuilder.ToString());
response.End();
response.Flush();
}
}
- ToraValenzuela's blog
- Login to post comments
