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

时间:2008-12-09 22:26:15

标签: html excel formatting numbers formulas

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

  • 强制Excel将td单元格的内容视为数字
  • 进行上述操作,以便后续用户输入的公式可以在这些单元格上工作(打开电子表格时)

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

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

7 个答案:

答案 0 :(得分:29)

如果您在页面中添加CSS类:

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

在你的TD上打那些课程,它有用吗?

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

更新: Additional formatting options

答案 1 :(得分:16)

以下是Excel格式列表:Styling Excel cells with mso-number-format

答案 2 :(得分:4)

最好的方法是使用您需要的所有颜色/(条件)格式/公式来模拟Excel电子表格。

尽量保持简单,只留下最小的行等。

然后将Excel电子表格保存为“As Xml Spreadsheet”

然后你有一个模板来通过Xml构建电子表格。

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

然后,只需填充您拥有的任何数据源。

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

答案 3 :(得分:2)

如果您使用css class添加它,有时会无效,请尝试使用Style到您的TD。我这样做是为了将列格式化为文本。像这样

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

对你来说就像

一样
  mso-number-format:General

答案 4 :(得分:1)

我无法在此页面上获得任何答案,无法在Excel 2010中使用。我最终使用了这个。

<td x:num>123</td>

答案 5 :(得分:0)

更新:您还需要从包含数字或货币信息的td单元格中删除不间断空格(nbsp's),以使公式在Excel中对这些单元格起作用。所以问题就解决了。

答案 6 :(得分:-1)

mso-number-format:0         NO Decimals
mso-number-format:"\#\,\#\#0\.000" 3 Decimals 
mso-number-format:"mm\/dd\/yy" Thousand comma with 3 decimals  
mso-number-format:"mmmm\\ d\\\,\\ yyyy" Date7 
mso-number-format:"m\/d\/yy\\ h\:mm\\ AM\/PM" Date9 

文本列

"<td style=\"mso-number-format:'\@'\">"

<td style="mso-number-format:'\@'">