C# 服务端导出单页excel

前端导出excel表格为因为浏览器不同,需是需要在在前端代码中进行服务器的相应设置,相对比较麻烦,故可考虑后端导出:

protected void Button1_Click(object sender, EventArgs e)
    {
        Response.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}.xls", "Test"));//设置导出名称为Test

        Response.ContentEncoding = Encoding.GetEncoding("utf-8");
        Response.ContentType = "application/ms-excel";
        RepeaterYear.EnableViewState = false;//需导出表格的控件

        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);

        RepeaterYear.RenderControl(oHtmlTextWriter);//内容control
        Response.Write(oStringWriter.ToString());
        Response.End();

    }

    上述导出不足:那么导出的只能是拿到源数据的样式,可能与前端的显示效果不同(若在前端对单元格进行过合并的话)。因此若需按前端样式导出表格,需要在前端处理,只是处理时一定要注意不同浏览器的兼容性,特别是IE浏览器。

原文地址:https://www.cnblogs.com/chengcanghai/p/13824632.html