导出到excel时如何显示前导零?

时间:2009-07-30 19:39:11

标签: excel vbscript

我正在通过更改内容类型来创建Excel报告。

Response.ContentType = "application/vnd.ms-excel"

我的值包含前导零。问题是当导出到excel时,缺少前导零。

e.g。

000123 - > 123

我知道这可以通过excel手动更改。问题是如何以编程方式完成此任务?

3 个答案:

答案 0 :(得分:6)

我找到了答案,您可以用引号括起值,并在前面添加等号以保留前导零。

= “000123”

见这里:Excel vs. Leading Zero & Space

答案 1 :(得分:5)

将您的application/vnd.ms-excel导出为HTML表格,它可让您访问各种工作表格式选项:

使用:

Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);

并发送以下内容:

<table border="1">
<caption>This is a caption, it appears centered across all columns</caption>
<colgroup>
<col width="100">
<col width="200">
</colgroup>
<tr valign="bottom">
<td><b>Header 1</b></td>
<td filter="all"><b>Header 2 (filterable)</b></td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon]($#,##0.00)">1</td>
<td style="vnd.ms-excel.numberformat:00000000">2</td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0_)[semicolon]($#,##0)">3</td>
<td style="vnd.ms-excel.numberformat:00000000">4</td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon]($#,##0.00)">-5</td>
<td style="vnd.ms-excel.numberformat:00000000">2</td>
</tr>
<tr valign="top">
<td style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon][red]$#,##0.00">-7</td>
<td style="vnd.ms-excel.numberformat:00000000">8</td>
</tr>
<tr valign="bottom">
<td formula="=sum(a2:a5)" style="vnd.ms-excel.numberformat:$#,##0.00_)[semicolon][red]$#,##0.00"></td>
<td formula="=average(b2:b5)" style="vnd.ms-excel.numberformat:00000000"></td>
</tr>
</table>

请注意,通过使用HTML表格语法,您可以添加column AutoFilter,指定垂直行对齐,控制列的宽度,将列与<colspan>组合(未显示),添加{{3并使用formulas指定列数据的格式。您甚至可以vnd.ms-excel.numberformat(未显示)。

我有一个链接到更全面的文档,关于支持哪些HTML标记和属性,以及它们做了​​什么,但我似乎错放了它。如果其他人有关于此的Microsoft文档的良好链接,请随时Crosstab (PivotTables)或包含评论。

编辑:您似乎可以edit my answer来构建复杂的Excel工作表。我从来没有这么做过,但知道什么是可能的很有意思。

答案 2 :(得分:0)

使用前导'(撇号)导出列。