格式化HTML表格单元格,使Excel格式为文本?

我正在创build一个将在Excel中作为电子表格打开的HTML表格。 什么HTML标签或CSS样式可以用来“告诉”Excel以单元格的内容显示文本?

您可以将格式应用于数字,文字,date等单元格

看到我以前的答案: HTML到Excel:如何告诉Excel将列作为数字处理?

(调整后的片段)

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

.num { mso-number-format:General; } .text{ mso-number-format:"\@";/*force text*/ } 

在你们的TD上打这些课,是否有用?

 <td class="num">34</td> <td class="num">17.0</td> <td class="text">067</td> 

有一个问题使用该解决scheme(数字格式的CSS样式)。 Excel会给出错误“Number Stored as Text”,在某些情况下可能会不方便。 为了避免这个问题,可以在字段的开头使用零宽度字符(&#8203;)。

我没有足够的代表评论或投票,但Raposo的答案对我来说效果很好。 我们的系统导入SSRS报告并以本地模式运行。 它将DataSet查询存储在数据库中,并在运行时将其提取出来。 但是,对于Excel导出,它只是将查询的结果数据运行到DataGrid对象中,并将其直接写入到HTML中,并将扩展名设置为.xls。 在报告的DataSet查询中放入Raposo的解决scheme:

 SELECT someColumn = '&#8203;' + someColumn FROM, etc. 

并在SSRS字段的expression式中将其删除:

 =Replace(Fields!someColumn.Value, "&#8203;", "") 

是我发现的唯一的作品。 谢谢!

我发现了这个问题的五个解决scheme:

  1. 按照scunliffe所述将文本格式设置为文本格式。 这有Raposo所说的绿色三angular形的问题。

  2. 使用&#8203; 如Raposo所述。 这有一个问题,价值不是一个真正的数字。 这可能是一个问题,如果数据被拉入某些系统进行处理。

  3. 将TD添加为<td> =“067”</ td>。 这与#2有同样的问题。

  4. 将TD添加为<td> = text(067,“000”)</ td>。 这也有#2相同的问题。

  5. 使用.text3 {mso-number-format:“000”;}的CSS类并将此类添加到TD。 这是我的首选解决scheme,但它有问题,如果您有不同长度的数字需要多个类。 如果你编写你的头文件,然后迭代你的数据,你必须添加所有可能的类,然后才知道你将需要哪些类。 但是这样做的优点是文本确实是一个数字,没有绿色的三angular形。

精湛的解决scheme! 我做了如下

 HttpContext.Current.Response.Write("<style> .txt " + "\r\n" + " {mso-style-parent:style0;mso-number-format:\"" + @"\@" + "\"" + ";} " + "\r\n" + "</style>"); HttpContext.Current.Response.Write("<Td class='txt'>&#8203;"); HttpContext.Current.Response.Write(Coltext); HttpContext.Current.Response.Write("</Td>"); 

对我来说工作正常

您也可以通过添加不间断的空间来解决问题: &nbsp;<td>元素的值之前。
例如: <td>&nbsp;0:12:12.185</td>
而不是: <td>0:12:12.185</td>