我正在通过更改内容类型来创建Excel报告.
Response.ContentType = "application/vnd.ms-excel"
Run Code Online (Sandbox Code Playgroud)
我的值包含前导零.问题是当导出到excel时,缺少前导零.
例如
000123 - > 123
我知道这可以通过excel手动更改.问题是如何以编程方式完成此操作?
导出您application/vnd.ms-excel的HTML表格,它可以访问各种工作表格式选项:
使用:
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Run Code Online (Sandbox Code Playgroud)
并发送如下内容:
<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>
Run Code Online (Sandbox Code Playgroud)
请注意,通过使用HTML表格语法,您可以添加一列AutoFilter,指定垂直行对齐,控制列的宽度,将列与<colspan>(未显示)组合,添加公式并使用vnd.ms-excel指定列数据的格式.numberformat.你甚至可以做Crosstab(数据透视表)(未显示).
我有一个链接到更全面的文档,关于支持哪些HTML标记和属性,以及它们做了什么,但我似乎错放了它.如果其他人有关于此的Microsoft文档的良好链接,请随时编辑我的答案或包含评论.
编辑:似乎你可以用HTML/XML做更多的事情来构建复杂的Excel工作表.我从来没有这么长,但知道什么是可能的很有趣.