强制数值作为导出到excel的HTML表格上的文本

时间:2011-04-08 17:09:30

标签: asp.net html excel export-to-excel

我正在尝试修复工作中的错误,在经典ASP中呈现HTML表格,然后将其作为Excel文件发送到客户端。我将保留整个源代码示例,但基本上我们有一列是字母数字,但当值以一个或多个零开始时,零会消失。我知道这是处理数字的标准Excel行为,但我希望它将值视为文本。我怎么能这样做?

问题中的细胞:

Response.Write("<td class='tdsmall' align='left' NOWRAP>" & rsPODetail("ITM_ID") & "</td>")

实施例

  

HTML | EXCEL
  00212704 | 212704个
  00212336 | 212336个
  00212251 | 212251

6 个答案:

答案 0 :(得分:10)

只需在表格前添加一行

Response.Write("<style> TD { mso-number-format:\@; } </style>");

检查出来:Export Gridview to Excel with rows formatted as text

答案 1 :(得分:7)

也许试试=“00212704”

Response.Write("<td class='tdsmall' align='left' NOWRAP>=""" & rsPODetail("ITM_ID") & """</td>")

答案 2 :(得分:4)

不需要修改表格内容的一个选项是使用mso-number-format CSS样式,如this SO answer所述。对于文本,您可以使用以下内容:

CSS:

.xlText {
    mso-number-format: "\@";
}

HTML:

<td class="xlText">00030</td>

答案 3 :(得分:1)

把风格放在html的头上。  TD {mso-number-format:\ @; }

所有表格单元格都将转换为文本。

答案 4 :(得分:0)

excel会将数字视为文本,如果您在数字前加上单引号,例如“001234

可能会帮助您解决问题

答案 5 :(得分:0)

您可以将其作为.csv文件呈现并在客户端下载吗?编辑:废话,这不起作用。

实际上,你不能做任何不会成为黑客的事情,因为IE和Excel并没有真正以标准格式“对话”。这是Excel中的客户端问题,您正在尝试这样做 覆盖默认行为。

您可能需要做的是创建一个Excel模板文件,将其保存到Web服务器,然后编写一个脚本来复制excel文件,进行更改并将其发送给用户。这样你就可以控制数字格式。