将GridView控件数据导出到Excel中。
来源:互联网 发布:酒店网络怎么布置 编辑:程序博客网 时间:2024/04/30 10:28
/// <summary> /// 将GridView控件数据导出到Excel中。 /// </summary> public static void Export(WebControl wc, String fileName) { HttpContext httpContext = System.Web.HttpContext.Current; if (httpContext.Request.UserAgent.IndexOf("MSIE") >= 0) fileName = httpContext.Server.UrlPathEncode(fileName); if (!Path.HasExtension(fileName)) fileName = String.Format("{0}.xls", fileName); httpContext.Response.Clear(); httpContext.Response.Buffer = true; httpContext.Response.Charset = "gb2312"; httpContext.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>"); httpContext.Response.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}", fileName)); // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!! httpContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); httpContext.Response.ContentType = "application/vnd.ms-excel";//设置输出文件类型为excel文件。 System.IO.StringWriter sw = new System.IO.StringWriter(System.Globalization.CultureInfo.CurrentCulture); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw); System.Web.UI.Page page = new System.Web.UI.Page(); System.Web.UI.HtmlControls.HtmlForm form = new System.Web.UI.HtmlControls.HtmlForm(); //wc.RenderControl(hw); page.DesignerInitialize(); page.Controls.Add(form); form.Controls.Add(wc); page.RenderControl(hw); httpContext.Response.Output.Write(sw.ToString()); httpContext.Response.Flush(); httpContext.Response.End(); }