本帖最后由 edchen 于 2013-01-17 16:55:47 编辑

解决方案 »

  1.   

    把gridview数据赋值给stringWriter
      

  2.   

    简单例子  导出excel     protected void btnExcelError_Click(object sender, EventArgs e)
         {     
            string strFileNames = DateTime.Now.ToShortDateString();
            ToExcel(this.RecordToolbar1, strFileNames);
         } 
        public static void ToExcel(System.Web.UI.Control col, string fname)
        {
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Buffer = true;
            //Context.Current.Response.Clear();
            HttpContext.Current.Response.Charset = "gb2312";
            HttpContext.Current.Response.ContentEncoding =  System.Text.Encoding.GetEncoding("utf-7");
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + HttpUtility.UrlEncode(fname, System.Text.Encoding.UTF8) + ".xls");
            col.Page.EnableViewState = false;
            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
            col.RenderControl(hw);
            HttpContext.Current.Response.Write(tw.ToString());
            HttpContext.Current.Response.End();
        }
      

  3.   

    啥叫 只有“只有gridview以外的数据”你到百度上 搜“清清月儿” gridview 72般绝技,最后一个,就是导出到excel,你拿过来就可以你仔细看看是怎么实现的。
      

  4.   

            public static void ExportExcel(GridView gv, string filename, HttpResponse Response)
            {
                Response.Charset = "UTF-8"; //设置编码的            Response.ContentEncoding = System.Text.Encoding.UTF8;            Response.Write("<meta   http-equiv=Content-Type   content=text/html;charset=utf-8>");            Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(filename) + ".xls");            Response.ContentType = "application/excel";            StringWriter sw = new StringWriter();            HtmlTextWriter htw = new HtmlTextWriter(sw);            gv.RenderControl(htw);            Response.Write(sw.ToString());            Response.End();
            }