HTML a Excel: ¿Cómo puede decirle a Excel que trate las columnas como números?

votos
19

Necesito lograr lo siguiente al abrir un HTML en Excel (Response.contentType=application/vnd.ms-excel):

  • obligar a Excel a considerar el contenido de las celdas td como números
  • haga lo anterior para que cualquier fórmula subsiguiente ingresada por el usuario funcione en estas celdas (cuando se abre la hoja de cálculo)

Hasta ahora tuve éxito agregando style=vnd.ms-excel.numberformat:0.00a las celdas td en cuestión. El contenido de las celdas se muestra correctamente como números cuando hago clic con el botón derecho sobre ellos en el Excel, sin embargo, las fórmulas no funcionan.

Si tiene éxito, esa técnica sería bastante útil porque cualquier informe web de Excel podría ser mejorado por el usuario con las fórmulas adecuadas de acuerdo con los requisitos personalizados. Gracias por adelantado.

Publicado el 09/12/2008 a las 23:26
fuente por usuario
En otros idiomas...                            


6 respuestas

votos
28

Si agrega una clase de CSS a su página:

.num {
  mso-number-format:General;
}
.date {
  mso-number-format:"Short Date";
}

Y dale palmadas a esas clases en tu TD, ¿funciona?

<td class="num">34</td>
<td class="num">17.0</td>
<td class="date">12/17/2008</td> <!-- if you are playing with dates too -->

Actualización: opciones de formato adicionales de @ Aaron.

Respondida el 10/12/2008 a las 00:06
fuente por usuario

votos
16

Aquí hay una lista de formatos de Excel: Estilo de celdas de Excel con mso-number-format

Respondida el 22/07/2009 a las 16:34
fuente por usuario

votos
4

El mejor truco es simular una hoja de cálculo de Excel con todos los formatos de colores / (condicional) / fórmulas que necesita.

Manténgalo lo más simple posible, solo las filas mínimas, etc.

A continuación, guarde la hoja de cálculo de Excel como "Hoja de cálculo Xml"

Luego tienes una plantilla para construir una hoja de cálculo a través de Xml.

Generalmente limpio estilos en el Xml original guardado del libro de Excel. Eliminar duplicados y renombrarlos.

Entonces solo es cuestión de poblar con cualquier fuente de datos que tenga.

No sé en qué entorno está codificando, pero en VB.NET con LINQ y Xml Literals, esta es una tarea muy simple.

Respondida el 10/12/2008 a las 00:04
fuente por usuario

votos
2

No funciona a veces si lo añade utilizando una css classen ese caso probarlo utilizando en Styleal TD. Lo hice para dar formato a una columna de un texto. Me gusta esto

 style="mso-number-format:\@;"

Para usted sería tan

  mso-number-format:General
Respondida el 03/10/2012 a las 14:17
fuente por usuario

votos
1

No pude conseguir ninguna de las respuestas en esta página para trabajar en Excel 2010. Terminé usando esto.

<td x:num>123</td>

Respondida el 22/07/2015 a las 03:45
fuente por usuario

votos
0

ACTUALIZACIÓN: también debe eliminar los espacios sin interrupción (nbsp) de las celdas td que contienen información numérica o monetaria para que las fórmulas funcionen en estas celdas en Excel. Entonces el problema está resuelto

Respondida el 10/12/2008 a las 19:42
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more