前端导出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浏览器。