将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();        }

原创粉丝点击