我将数据从vb.net导出到excel,并且当它显示在excel上时它正在丢弃前导零。如何避免前导零的下降?我阅读了添加单引号的解决方案,但它使我的Excel工作表列难看。如果他们在邮政编码字段上看到单引号,用户也会抱怨。 vb.net代码
Response.AddHeader("content-disposition", attachment)
Response.ContentType = "application/vnd.ms-excel"
Response.Charset = ""
存储过程输出XML,在EXCEL上显示之前由XSLT进行转换
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<HEAD>
<STYLE type="text/css"> TABLE{table-layout: automatic; width:100%} .tblHeader{background-color:RGB(192,192,192);font-weight:bold} .row1{background-color:RGB(204,204,255)} .row2{background-color:RGB(153,204,255)} </STYLE>
</HEAD>
<BODY>
<TABLE border="1">
<THEAD>
<tr class="tblHeader">
<xsl:for-each select="*/*[1]/*">
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</THEAD>
<TBODY>
<xsl:for-each select="ClientArray/Client">
<TR>
<xsl:for-each select="*">
<TD>
<xsl:value-of select="."/>
</TD>
</xsl:for-each>
</TR>
</xsl:for-each>
</TBODY>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
除了添加单引号或使用列格式化程序(通用/数字)等操作Excel工作表之外,请帮我解决。我不希望用户在Excel上进行任何更改以正确显示 当从网页显示excel时,应该使用正确的格式设置。我们也无法控制客户端Excel软件
答案 0 :(得分:1)
Excel中的数字单元格会自动删除前导零。为了保留前面的零,你必须将单元格的数据设置为文本[通过在邮政编码中添加撇号来实现。]
我没有使用Excel Interop,所以我无法确切地告诉您如何将单元格的数据类型设置为文本,但我可以向您保证,这是解决问题的方法。
答案 1 :(得分:1)
使用
<TD style="mso-number-format:\@;">
它将保留Leading zeros
。
答案 2 :(得分:1)
通过PHP导出到Excel时遇到了这个问题。我发现在前面加上一个等号并用双引号包围zip会导致Excel保留前导零。
我不知道vb.net,但在PHP中看起来像这样:
echo '="' . $the_zip_code . '"';
答案 3 :(得分:0)
如何通过xsl格式化数字? 看看http://www.w3schools.com/xsl/func_formatnumber.asp
答案 4 :(得分:-2)
转到您正在处理的单元格。右键单击,单击格式化单元格,然后进行测试。输入带前导零的数字,它将保留。