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中的这些单元格上工作。 所以问题解决了。