Publicidad

Pasar un ASP.NET Repeater/DataSet a Excel.


Por Alex el 28/02/2008 , Comentar el artículo

Comparte este artículo:        




Esto es una opción muy simple, ya que el Excel en este caso no tiene mucho formato, pero nos puede sacar de un apuro. Con cuatro líneas pasamos de un repater o datalist a un fichero Excel.


Vamos hacer el proceso completo. Ponemos un control repeater y un botón en la página aspx, el ejemplo completo esta al final del artículo.

Imagen

Y enlazamos este repeater con una fuente de datos, en el ejemplo, un query a la base de datos AdventureWorks y a la tabla Person.Contact y llenamos el repeater

SqlConnection conn = new SqlConnection("Server=localhost;Database=AdventureWorks;Uid=sa;Pwd=");
SqlCommand cmd = new SqlCommand("SELECT top 100 Title, FirstName, MiddleName, LastName, Suffix, EmailAddress, Phone, ModifiedDate FROM Person.Contact", conn);

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(ds);

Repeater1.DataSource = ds;
Repeater1.DataBind();

Ejecutando esto en el navegador veremos el listado y si pulsamos el boton para crear el excel pondremos en el evento del botón el siguiente código:

protected void Button1_Click(object sender, EventArgs e) {
  BindData();
  ExportExcel(ds, Repeater1);
}

La función ExportExcel es la que creara el Excel a partir de un dataset y un repeater:

public static void ExportExcel(DataSet ds, Repeater RepX) {

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

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

RepX.DataSource = ds;
RepX.DataBind();

RepX.RenderControl(htw);

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

Y esto lanzara un Excel para poder guardarlo o visualizarlo.

Enlaces relacionadas:

Código del artículo 

Saludos Alex.

Si te ha gustado el artículo compartelo en:        


Publicidad

También puede interesarte:

Instalar .NET Core en Ubuntu

Instalar .NET Core en Ubuntu

Por Alex, el 07/02/2020

Limpiar datos de un combobox en winforms.

Limpiar datos de un combobox en winforms.

Por Alex, el 23/03/2010

Crear, copiar y borrar bases de datos SQL Server desde c#.

Crear, copiar y borrar bases de datos SQL Server desde c#.

Por Alex, el 07/03/2010

Escribir en un excel desde c#.

Escribir en un excel desde c#.

Por Alex, el 04/03/2010

Llenar un Repeater o DataList con un DataTable.

Llenar un Repeater o DataList con un DataTable.

Por Alex, el 29/12/2008

El evento SelectedIndexChanged no funciona

El evento SelectedIndexChanged no funciona

Por Alex, el 26/12/2008


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.