gridview导出excel乱码

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:15:28
我在VS2005里调试,gridview导出excel文件没有产生乱码问题,但是把发布后的代码放在IIS里浏览,再导出excel就产生了乱码问题,这是怎么回事?谢谢
我的导出excel代码如下:
Response.Clear();
Response.Buffer = false;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=pkmv_de.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";
Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
我还想知道

有乱码肯定是编码问题。不知道你用什么方法导出的。
其实由一个第三方控件的,可以直接吧DataGrid导出到EXCEL
非常好实现,方法都是写好的。
如果你用流导出的,肯定是你要设定一下它编码,具体你研究下
例如网上找的:
HttpContext.Current.Response.Charset = "UTF-8"; //设置编码的
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
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(tw.ToString());
HttpContext.Current.Response.End();