2009-07-30 46 views
4

我正在通過更改內容類型來創建Excel報告。如何在導出爲ex​​cel時顯示前導零?

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

我有值包含前導零。問題在於導出爲ex​​cel時,前導零缺失。

例如

00- > 123

我知道這可以通過excel手動更改。問題是我如何以編程方式完成此任務?

回答

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>(未示出)中,添加formulas和指定列的數據的格式與結合柱vnd.ms-excel.numberformat。你甚至可以做Crosstab (PivotTables)(未顯示)。

我有一個鏈接到更全面的文檔有關什麼HTML標籤和屬性支持,他們做什麼,但我似乎錯了。如果其他人有與此有關的Microsoft文檔的良好鏈接,請隨時致電edit my answer或發表評論。

編輯:看來你可以做a lot more with HTML/XML構建複雜的Excel工作表。我從來沒有去過這麼長的時間,但知道什麼是可能的,這很有趣。

+0

謝謝你。雖然我的回答服務於我的目的,但這絕對是正確的方式。 – Tesseract 2009-07-31 14:03:15

0

以領先的'(撇號)導出該列。

+0

這不是最好的解決方案,因爲列中包含撇號。 – Tesseract 2009-07-30 19:50:28