gridview导出excel文件时 footer里的label无内容 在网页上显示是有的,可是导出就没有labbel内容了 

解决方案 »

  1.   

    /// <summary>
            /// 将Web控件导出
            /// </summary>
            /// <param name="source">控件实例</param>
            /// <param name="type">类型:Excel或Word</param>
            public void ExpertControl(System.Web.UI.Control source, DocumentType type)
            {
                //设置Http的头信息,编码格式
                if (type == DocumentType.Excel)
                {
                    //Excel
                    Response.AppendHeader("Content-Disposition","attachment;filename=result.xls");
                    Response.ContentType = "application/ms-excel";
                }
                else if (type == DocumentType.Word)
                {
                    //Word
                    Response.AppendHeader("Content-Disposition","attachment;filename=result.doc");
                    Response.ContentType = "application/ms-word";
                }
                Response.Charset = "UTF-8";  
                Response.ContentEncoding = System.Text.Encoding.UTF8;             //关闭控件的视图状态
                source.Page.EnableViewState =false;              //初始化HtmlWriter
                System.IO.StringWriter writer = new System.IO.StringWriter() ;
                System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);
                source.RenderControl(htmlWriter);             //输出
                Response.Write(writer.ToString());
                Response.End();
            }
      

  2.   

        private void ToExcel(Control ctl, string FileName)
        {
            string style = @"<style> .text { mso-number-format:\@; } </script> ";
            HttpContext.Current.Response.ClearContent();        HttpContext.Current.Response.Charset = "GB2312";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
            ctl.Page.EnableViewState = false;
            System.IO.StringWriter tw = new System.IO.StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);
            ctl.RenderControl(hw);
            HttpContext.Current.Response.Write(style); 
            HttpContext.Current.Response.Write(tw.ToString());
            HttpContext.Current.Response.End();    }
        public override void VerifyRenderingInServerForm(Control control)
        {
            // Confirms that an HtmlForm control is rendered for
        }
        protected void toExcelClk_Click(object sender, EventArgs e)
        {
            GridView2.AllowPaging = false;
            GridView2.AllowSorting = false;
            GridView2.DataBind();
            ToExcel(GridView2, "sc.xls");
            GridView2.AllowPaging = true;
            GridView2.AllowSorting = true;
            GridView2.DataBind();
        }这是我的代码有问题吗??请详说一下谢谢了
      

  3.   

    导出excel