.Net直接将Web页面table导出到Excel
项目管理系统有个统计表需要导出到Excel表中。常用的方法是在后台C#代码查询数据再写入Excel表中最后保存在目标路径。
为减轻数据库服务器的压力和保持页面的样式,能否直接将页面的表格直接导出到Excel表呢?答案是肯定的。方法如下:
<script type="text/javascript">
function ExportToExcel() {
document.getElementById("<%=hidExport.ClientID%>").value = document.getElementById("divExport").innerHTML;
}
</script>
<asp:HiddenField ID="hidExport" runat="server" />
<asp:Button ID="btnToExcel" runat="server" Text="导出Excel" Height="30px" OnClientClick="return ExportToExcel();" OnClick="btnToExcel_Click" />
<div id="divExport">
<table>
<tbody >
内容
</tbody>
</table>
protected void btnToExcel_Click(object sender, EventArgs e)
{
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";
fileName = System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel.numberformat:@";
this.EnableViewState = false;
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", ("attachment;filename=" + (fileName.ToLower().EndsWith(".xls") ? fileName : fileName + ".xls")));
Response.Write(this.hidExport.Value);
Response.End();
}