number convert html excel formatting numbers formulas

html - convert - format excel



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

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.00" a las celdas td en cuestión. El contenido de las celdas se muestra correctamente como números cuando hago clic 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.


El mejor truco es simular una hoja de cálculo de Excel con todos los formatos de colores / (condicionales) / 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.


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



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.


No funciona a veces si lo agrega usando una css class en ese caso, inténtelo usando Style en su TD . Lo hice para formatear una columna en un texto. Me gusta esto

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

Para ti sería como

mso-number-format:General


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

<td x:num>123</td>