将HTML数据表中的文本强制导出为ex​​cel

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

问题中的单元格:

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

例子

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

也许尝试=“00212704”

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

只需在表格前添加一行

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

检查了这一点: 导出Gridview到Excel格式化为文本的行

一个不需要修改表格内容的选项是使用mso-number-format CSS样式,就像在这个答案中所描述的一样。 对于文本,你可以使用像这样的东西:

CSS:

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

HTML:

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

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

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

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

可能这会帮助你解决你的问题

你可以把它作为一个.csv文件呈现并下载到客户端上吗? 编辑:废话,这是行不通的。

真的,你不能做很多事情,因为IE和Excel不会以标准格式“交谈”。 这是Excel中的一个客户端问题,您试图覆盖默认行为。

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