导Excel出现没有规律乱码的问题。
public void Export2Excel(string fileName,System.Web.UI.WebControls.DataGrid dgList)
{
Response.Clear();
Response.Buffer= true;
Response.Charset="gb2312";
Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)+".xls");
//Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentEncoding=System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dgList.BackColor = Color.FromName("#00000") ;
dgList.BorderWidth = 1 ;
dgList.RenderControl(oHtmlTextWriter);
dgList.BackColor = Color.FromName("#B2BBC0") ;
dgList.BorderWidth = 0 ;
Response.Write(oStringWriter.ToString());
Response.End();
}
写了这个函数把DataGrid导成Excel
如果使用这一句:
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
则有些会出现乱码,有些DataGrid不会(同一个Usercontrol模板的DataGrid也出现这个问题)
如果使用
Response.ContentEncoding=System.Text.Encoding.UTF8;
则不会,不过字体会变成英文字体而不是宋体,设置dgList的字体也没有用。
怎么会出现这样的乱码问题?哪位知道。。。