当在Excel上显示时,邮政编码正在下降前导零。导出到excel从vb.net XML到XSLT转换

时间:2010-08-16 21:35:03

标签: xml vb.net xslt export export-to-excel

我将数据从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软件

5 个答案:

答案 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)

转到您正在处理的单元格。右键单击,单击格式化单元格,然后进行测试。输入带前导零的数字,它将保留。