HttpContext.Current.Response.Charset = "UTF-8";
        HttpContext.Current.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);        //输出         HttpContext.Current.Response.Write(writer.ToString());
       HttpContext.Current.Response.End();

解决方案 »

  1.   

    http://topic.csdn.net/u/20120112/14/4d5990f7-693f-44b4-95fa-052abf6ca1c0.html
      

  2.   

    HttpContext.Current.Response.Charset = "UTF-8";换成HttpContext.Current.Response.Charset = "gb2312";
    试试
      

  3.   

    <meta http-equiv="content-type" content="application/ms-excel; charset=UTF-8"/>
    页面加上这个试试!
      

  4.   

    给你个生成excel类做参考!
    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Collections;
    using System.IO;/// <summary>
    ///ExcelHelper 的摘要说明
    /// </summary>
    namespace DBUtility
    {
        public class ExportHelper
        {        public static void ExportToExcel(IList dataList, string[] fields, string[] headTexts, string title)
            {
                GridView gvw = new GridView();
                int ColCount, i;            //如果筛选的字段和对应的列头名称个数相对的情况下只导出指定的字段
                if (fields.Length != 0 && fields.Length == headTexts.Length)
                {
                    ColCount = fields.Length;
                    gvw.AutoGenerateColumns = false;                for (i = 0; i < ColCount; i++)
                    {
                        BoundField bf = new BoundField();
                        bf.DataField = fields[i];
                        bf.HeaderText = headTexts[i];
                        gvw.Columns.Add(bf);
                    }
                }
                else
                {
                    gvw.AutoGenerateColumns = true;
                }            SetStype(gvw);
                gvw.DataSource = dataList;
                gvw.DataBind();            ExportToExcel(gvw, title);
            }
            /// <summary>
            /// 导出数据到Excel
            /// </summary>
            /// <param name="DataList">IList Data</param>
            /// <param name="Fields">要导出的字段</param>
            /// <param name="HeadName">字段对应显示的名称</param>
            public static void ExportToExcel(IList dataList, string[] fields, string[] headTexts)
            {
                ExportToExcel(dataList, fields, headTexts, string.Empty);
            }        /// <summary>
            /// 设置样式
            /// </summary>
            /// <param name="gvw"></param>
            private static void SetStype(GridView gvw)
            {
                gvw.Font.Name = "Verdana";
                gvw.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
                gvw.HeaderStyle.BackColor = System.Drawing.Color.LightCyan;
                gvw.HeaderStyle.ForeColor = System.Drawing.Color.Black;
                gvw.HeaderStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;
                gvw.HeaderStyle.Wrap = false;
                gvw.HeaderStyle.Font.Bold = false;
                gvw.HeaderStyle.Font.Size = 15;
                gvw.RowStyle.Font.Size = 12;
                gvw.RowStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;
            }
            /// <summary>
            /// 导出GridView中的数据到Excel
            /// </summary>
            /// <param name="gvw"></param>
            /// <param name="DataList"></param>
            private static void ExportToExcel(GridView gvw, string title)
            {
                string fileName;
                HttpContext.Current.Response.Buffer = true;
                HttpContext.Current.Response.ClearContent();
                HttpContext.Current.Response.ClearHeaders();
                HttpContext.Current.Response.Charset = "GB2312";
               // HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
                fileName = string.Format("{0:yyyy-MM-dd_HH_mm_ss}.xls", DateTime.Now);
                HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
                StringWriter tw = new System.IO.StringWriter();
                HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
                gvw.RenderControl(hw);
                if (!string.IsNullOrEmpty(title))
                {
                    HttpContext.Current.Response.Write("<b><center><font size=5 face=Verdana color=#000>" + title + "</font></center></b>");
                }
                HttpContext.Current.Response.Write(tw.ToString());
                HttpContext.Current.Response.Flush();
                HttpContext.Current.Response.Close();
                HttpContext.Current.Response.End();            gvw.Dispose();
                tw.Dispose();
                hw.Dispose();            gvw = null;
                tw = null;
                hw = null;        }
        }
    }
      

  5.   

           这是我们用到的
    ~~  
       org.in2bits.MyXls.XlsDocument doc = new XlsDocument();
                doc.FileName = "教材信息参考资料.xls";
                insertDataTable(TeachVersion, "教材系列信息", doc, "1", "教材名称", "教材ID");
                insertDataTable(dtSubject, "学科信息", doc, "2", "学科名称", "学科ID");
                insertDataTable(dtGrades, "年级信息", doc, "3", "年级ID", "年级名称");
                string strTemp = System.Web.HttpUtility.UrlEncode("教材信息参考资料.xls", System.Text.Encoding.UTF8);
                Response.AppendHeader("content-disposition", "attachment;filename=" + strTemp);
                Response.OutputStream.Write(doc.Bytes.ByteArray, 0, doc.Bytes.ByteArray.Length);
                Response.Flush();
                Response.End();