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

Exportando a Excel desde .NET

Estas en el tema de Exportando a Excel desde .NET en el foro de .NET en Foros del Web. Hola, tengo una aplicación web que exporta un report a excel, en formato inglés o americano, esto es: 123,456.78. Esto funciona bien tanto en mi ...
  #1 (permalink)  
Antiguo 04/01/2007, 03:56
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Exportando a Excel desde .NET

Hola, tengo una aplicación web que exporta un report a excel, en formato inglés o americano, esto es: 123,456.78.

Esto funciona bien tanto en mi máquina como en mi servidor de pruebas, pero cuando lo subo a producción, cuando los valores son 0, en lugar de mostrarmelos como 0.00 me los muestra como 0 a secas sin los dos decimales. El código no cambia para ninguna de las maquinas, y la linea que pinta la columna en cuestión es la siguiente:

Response.Write("<td align=right border=1>" & CStr(Format(rowItem.ItemArray(j), "#,##0.00")) + "</td>")

deduzco que es cuestión de la maquina y de su configuración, he probado a cambiar en los regional settings por si fuera cuestión de eso pero da igual como los tengas configurados que no funciona... ¿alguna idea? Gracias y un saludo.
  #2 (permalink)  
Antiguo 04/01/2007, 06:31
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 11 meses
Puntos: 76
Re: Exportando a Excel desde .NET

Lo que exportas es el contenido de una grid?

Como lo exportas?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 04/01/2007, 07:40
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Exportando a Excel desde .NET

Más información.

Al observar el formato de las celdas de excel ocurre lo siguiente:

Dentro de una misma columna en la cual todas tienen el mismo formato dado por código vb.NET, resulta lo siguiente:

Los números bien formateados son de tipo numérico, pero los que están mal formateados es porque el tipo de dato que supuestamente contiene la celda es "General". Basta cambiar manualmente el tipo de una o todoas las celdas a numerico para solucionar el problema, pero claro, esto es una chapuza, y necesitaría que esto se solucionara por código o por configuración del servidor....

Gracias a todos y un saludo.
  #4 (permalink)  
Antiguo 04/01/2007, 07:47
 
Fecha de Ingreso: enero-2007
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Exportando a Excel desde .NET

Este es el inicio del código del procedimiento:


Response.ContentType = "application/vnd.ms-excel"
Response.Buffer = True
Response.Clear()
Response.Charset = ""

a partir de ahí empieza a pintar el excel... voy directamente a la parte que nos interesa, si crees que puede estar por ahí me lo dices y te lo pongo entero

If (DT.Rows.Count = 0) Then
Response.Write("<tr>" & "<tr class=ReportData><td colspan=" & DT.Columns.Count & ">No data was returned. Consider changing the criteria." & "</td>" & "</tr>")
Else
'Row
For Each rowItem In DT.Rows
Response.Write("<tr class=ReportData border=1>")
'Column
For j = 0 To DT.Columns.Count - 1
If IsDBNull(rowItem.ItemArray(j)) Or Len(rowItem.ItemArray(j).ToString()) = 0 Then
Response.Write("<td align=right border=1>" & strSpace + "</td>")
Else
'Response.Write("<td align=right border=1>" & rowItem.ItemArray(j).ToString() + "</td>")
Select Case j
'BEGIN MOD PSH SIR AR31774 3/1/2007 Case 6...Case 7...Case 10.
Case 5
Response.Write("<td align=right border=1>" & CStr(Format(rowItem.ItemArray(j), "#,##0.00")) + "</td>")
dbl0_30 = dbl0_30 + CDbl(rowItem.ItemArray(j))
Case 6
Response.Write("<td align=right border=1>" & CStr(Format(rowItem.ItemArray(j), "#,##0.00")) + "</td>")
dbl31_60 = dbl31_60 + CDbl(rowItem.ItemArray(j))
Case 7
Response.Write("<td align=right border=1>" & CStr(Format(rowItem.ItemArray(j), "#,##0.00")) + "</td>")
dbl61_90 = dbl61_90 + CDbl(rowItem.ItemArray(j))
Case 8
Response.Write("<td align=right border=1>" & CStr(Format(rowItem.ItemArray(j), "#,##0.00")) + "</td>")
dbl91_120 = dbl91_120 + CDbl(rowItem.ItemArray(j))
Case 9
Response.Write("<td align=right border=1>" & CStr(Format(rowItem.ItemArray(j), "#,##0.00")) + "</td>")
dblUppTht120 = dblUppTht120 + CLng(rowItem.ItemArray(j))
'END MOD PSH SIR AR31774
Case Else
Response.Write("<td align=right border=1>" & rowItem.ItemArray(j).ToString() + "</td>")
End Select
End If

Next
Response.Write("</tr>")
Next
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 12:54.