所用代码如下,因为我的DataGrid中存在中文、日文、法文、德文等。所以采用utf-8编码!
在中文2000操作系统中运行没有问题,导出的Excel不存在乱码,可是我们的服务器是英文的2000server
同样的代码,数据库,导出来的Excel局势乱码的,谁遇到过这种问题public void ToExcel(System.Web.UI.Control ctl)  
{
Response.Clear(); 
Response.Buffer= true; 
HttpContext.Current.Response.Charset ="utf-8";
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Report.xls");

HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.GetEncoding("utf-8"); 
HttpContext.Current.Response.ContentType ="application/ms-excel"; //image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
ctl.Page.EnableViewState =false;
System.IO.StringWriter  tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}

解决方案 »

  1.   

    Response.Clear(); 
    Response.Buffer= true; 
    Response.Charset="GB2312";  //获取或设置输出流的 HTTP 字符集。
    Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");   
    Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
    Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
    this.EnableViewState = false;
      

  2.   

    用这种方法导出, 还是会有乱码的, 
    我以前也是这样做的, 经常是大多数页面是好的, 但有几个页面就是乱码, 
    换种编码后, 这些页面好了, 另外页面出现乱码. 建议你遍历DataTable , 然后输出html表格, 是字符串的字段前加上 , 即加上一个空调, 就OK了