20

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

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

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

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

4

7 回答 7

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 的其他格式选项

于 2008-12-09T23:06:43.400 回答
16

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

于 2009-07-22T15:34:24.113 回答
5

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

保持尽可能简单,只是最少的行等。

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

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

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

然后,只需使用您拥有的任何数据源进行填充即可。

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

于 2008-12-09T23:04:21.517 回答
2

如果您使用 a 添加它,有时它不起作用,css class在这种情况下尝试使用 inStyle到您的TD. 我这样做是为了将一列格式化为文本。像这样

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

对你来说,就像

  mso-number-format:General
于 2012-10-03T13:17:45.353 回答
1

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

<td x:num>123</td>

于 2015-07-22T03:45:27.653 回答
0

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

于 2008-12-10T18:42:49.937 回答
-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:'\@'">
于 2020-08-09T05:39:54.880 回答