ASP.NET datable导出excel
本文转载:http://www.cnblogs.com/chwkai/archive/2005/10/08/250426.html
不错的文章:http://www.cnblogs.com/lzhp/archive/2012/08/02/2680763.html
不错文章:http://hcyu2012.blog.163.com/blog/static/165192580201132532526918/
public void DataTable2Excel(DataTable dtData) { if (dtData != null) { Response.Clear(); Response.Charset = "utf-8"; Response.AppendHeader("Content-Disposition", "attachment;filename= " + Server.UrlEncode("导出.xls")); Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件. this.EnableViewState = false; System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true); System.IO.StringWriter stringWrite = new System.IO.StringWriter(myCItrad); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); //// 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid //System.Web.UI.WebControls.GridView dgExport = null; //dgExport = new System.Web.UI.WebControls.GridView(); GridView dgExport = new GridView(); dgExport.AllowPaging = false; dgExport.DataSource = dtData; dgExport.DataBind(); for (int i = 1; i < dgExport.Rows.Count; i++) { dgExport.Rows[i].Cells[0].Attributes.Add("style", "mso-number-format:'0'"); dgExport.Rows[i].Cells[2].Attributes.Add("style", "mso-number-format:'\\@'"); } dgExport.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.Write(@"<style> .text { mso-number-format:'\\@';} </script> "); Response.End(); } } GridView export to excel 格式参考 mso-number-format:"0" NO Decimals mso-number-format:"0\.000" 3 Decimals mso-number-format:"\#\,\#\#0\.000" Comma with 3 dec mso-number-format:"mm\/dd\/yy" Date7 mso-number-format:"mmmm\ d\,\ yyyy" Date9 mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" D -T AMPM mso-number-format:"Short Date" 01/03/1998 mso-number-format:"Medium Date" 01-mar-98 mso-number-format:"d\-mmm\-yyyy" 01-mar-1998 mso-number-format:"Short Time" 5:16 mso-number-format:"Medium Time" 5:16 am mso-number-format:"Long Time" 5:16:21:00 mso-number-format:"Percent" Percent - two decimals mso-number-format:"0%" Percent - no decimals mso-number-format:"0\.E+00" Scientific Notation mso-number-format:"\@" Text mso-number-format:"\#\ ???\/???" Fractions - up to 3 digits (312/943) mso-number-format:"\0022?\0022\#\,\#\#0\.00" ?12.76 mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\-\#\,\#\#0\.00\ " 2 decimals, negative numbers in red and signed (1.56 -1.56)
作者:阿笨
【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558
【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616
【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586
【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:829227829
【官方QQ五群:.NET Core跨平台开发技术(可加入)】:647639415
【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂】:https://abennet.ke.qq.com
【51CTO学院】:https://edu.51cto.com/sd/66c64
【微信公众号】:微信搜索:跟着阿笨一起玩NET