第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > web页面导出到Excel乱码解决

web页面导出到Excel乱码解决

时间:2022-12-09 01:40:20

相关推荐

web页面导出到Excel乱码解决

引言:

前几天 在做web项目的时候 需要导出页面上的数据 到Excel里面

但有的时候出现乱码(有de时候不出现 很奇怪)

原来的代码是这样的:

HttpContext.Current.Response.Clear();

HttpContext.Current.Response.AddHeader("content-disposition",

"attachment;filename=FileName.xls");

HttpContext.Current.Response.Charset = "GB2312";

HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//.Unicode;//.UTF8;//

HttpContext.Current.Response.ContentType = "xls"; //"application/vnd.xls";

System.IO.StringWriter stringWrite = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

mygridview.RenderControl(htw);

HttpContext.Current.Response.Write(sw.ToString());

HttpContext.Current.Response.End();

如何解决?

修改为下面的代码 问题就解决了

HttpContext.Current.Response.ClearContent();

HttpContext.Current.Response.Write("<meta http-equiv=Content-Type; content=text/html;charset=gb2312>");

HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");

HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

HttpContext.Current.Response.ContentType = "application/excel";

System.IO.StringWriter sw = new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);

mygridview.RenderControl(htw);

HttpContext.Current.Response.Write(sw.ToString());

HttpContext.Current.Response.End();

仔细比较一下 就是

HttpContext.Current.Response.Write("<meta http-equiv=Content-Type; content=text/html;charset=gb2312>");

这句话起的作用 (这句话的作用是声明该网页使用gb2312进行编码)

原来是 HttpContext.Current.Response.Charset = "GB2312";

我以为有这句话 就可以 看来不行

还是 使用 <meta http-equiv=Content-Type; content=text/html;charset=gb2312> 比较保险

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。