HTML到Excel:如何告诉Excel将列视为数字?

在Excel中打开HTML (Response.contentType="application/vnd.ms-excel")时,我需要实现以下function:

  • 迫使Excel将td单元格的内容视为数字
  • 使上述,以便任何后续的用户input的公式工作在这些单元格(当电子表格打开时)

到目前为止,我已经成功地向所讨论的td单元格添加了style="vnd.ms-excel.numberformat:0.00" 。 单元格的内容正确显示为数字时,我在Excel中右键单击它们,但公式不起作用。

如果成功,该技术将非常有用,因为任何Web Excel报表都可以根据自定义要求通过适当的公式进行用户增强。 提前致谢。

如果你添加一个CSS类到你的页面:

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

在你的运输署上打这些class,是否有效?

 <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 --> 

更新:来自@Aaron的其他格式化选项 。

以下是Excel格式的列表: 使用mso-number-format设置Excel单元格的样式

最好的窍门是用你需要的所有颜色/(条件)格式/公式来模拟Excel电子表格。

保持尽可能简单,只是最低限度的行等

然后保存Excel电子表格“作为Xml电子表格”

然后你有一个模板来通过Xmlbuild立一个电子表格。

我通常清理从Excel工作簿保存的原始Xml中的样式。 删除重复项并重命名它们。

那么这只是填充你拥有的任何数据源的问题。

我不知道你在编写什么环境,但是在使用LINQ和Xml Literals的VB.NET中,这是一个非常简单的任务。

如果你在这种情况下使用css class来添加它,那么它不起作用。 我做了格式化一个列的文本。 喜欢这个

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

对你来说,这将是

  mso-number-format:General 

我无法得到任何在这个页面上的答案在Excel 2010中工作。我结束了使用这个。

 <td x:num>123</td> 

更新:您还需要从包含数字或金钱信息的td单元中删除非中断空格(nbsp),以使公式在Excel中的这些单元格上工作。 所以问题解决了。