Foros del Web » Programación para mayores de 30 ;) » .NET »

Exportar datos de un datalist a una Hoja de Excel

Estas en el tema de Exportar datos de un datalist a una Hoja de Excel en el foro de .NET en Foros del Web. Estoy usando este código para exporter datos de un datagrid a una Hoja de Excel: Response.Clear(); Response.Buffer= true; Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-Disposition", "inline;filename=Clientes.xls"); Response.Charset = ...
  #1 (permalink)  
Antiguo 25/11/2004, 11:50
Avatar de see07  
Fecha de Ingreso: abril-2004
Ubicación: México, D.F.
Mensajes: 112
Antigüedad: 20 años
Puntos: 0
Exportar datos de un datalist a una Hoja de Excel

Estoy usando este código para exporter datos de un datagrid a una Hoja de Excel:

Response.Clear();
Response.Buffer= true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "inline;filename=Clientes.xls");
Response.Charset = "";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();

Y esto trabaja bien.
Pero ahora quiero hacer lo mismo con un datalist y así cambié la línea de RenderControl así:

DataList1.RenderControl(oHtmlTextWriter);

Sin embargo, cuando se muestra la Hoja de Excel, todos los datos se despliegan en la columna “A”, con un renglón por cada renglón del datalist.

¿Sabe alguien como puedo hacer que funcione como funciona con el datagrid (cada columna en el datalist dentro de su respectiva columna in Excel)?

Se los voy a agradecer mucho.

A.L.
__________________
El hombre que tiene amigos ha de mostrarse amigo....
  #2 (permalink)  
Antiguo 26/11/2004, 12:08
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
la cuestion es que un datagrid tiene la propiedad AutogenerateColumns y con ello cuando haces el bind genera las columnas, filas necesarias y por eso la exportación se hace bien.

En el caso de un datalist lo tienes que hacer a mano, puedes crear una tabla con los datos necesarios para que cuando hagas la exportación puedas ver las diferencias..

Ejemplo:

Cita:
<asp:datalist id="DataList1" runat="server">
<HeaderTemplate>
<table border="0">
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label Runat=server ID="lbl1" text='<%# Container.DataItem("Campo1") %>'>
</asp:Label>
</td>
<td>
<asp:Label Runat=server ID="Label1" text='<%# Container.DataItem("Campo2") %>'>
</asp:Label>
</td>
<td>
<asp:Label Runat=server ID="Label2" text='<%# Container.DataItem("Campo3") %>'>
</asp:Label>
</td>
</tr>
</ItemTemplate>
</asp:datalist>
Espero te sirva..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net

Última edición por RootK; 26/11/2004 a las 12:17
  #3 (permalink)  
Antiguo 29/11/2004, 12:41
Avatar de see07  
Fecha de Ingreso: abril-2004
Ubicación: México, D.F.
Mensajes: 112
Antigüedad: 20 años
Puntos: 0
Gracias por tu respuesta Rootk:
Omití el Header en mi código e inserté <tr> <td> como me indicas.
Los datos que se muestran en el datalist son: Id, Número, Nombre, Dirección, Población, CP, Fecha de Alta.
Al oprimir el botón para exportar a Excel se muestran en la ventana en los primeros renglones en celda "A" la Fecha de Alta, con las demás celdas vacías, después de esto vienen los renglones con los demás datos pero en orden inverso: CP, Población, Dirección, etc.
¿Acaso falta algo más en el código?
A.L.
__________________
El hombre que tiene amigos ha de mostrarse amigo....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:41.