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("");
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("");
这句话起的作用 (这句话的作用是声明该网页使用gb2312进行编码)
原来是 HttpContext.Current.Response.Charset = "GB2312";
我以为有这句话 就可以 看来不行
还是 使用 比较保险
最新文章
- 洛谷P1613 跑路
- Left join 中On和Where的作用范围
- c++ 怎样获取系统时间
- cvThreshold
- php处理字符串常用函数
- [Angular 2] ng-model and ng-for with Select and Option elements
- bayes
- MySQL 二进制日志(Binary Log)
- Android解析中国天气网的Json数据
- fs读取某个json文件的数据
- 4、公司经营的业务来源 - CEO之公司管理经验谈
- Date 类 02
- python之psutil模块(获取系统性能数据)
- 花十分钟,让你变成AI产品经理
- python开发day02
- js css样式操作代码(批量操作)
- 【分布式系列之ActiveMq】ActiveMq入门示例
- 20145312《网络对抗》MSF基础
- MVVM模式的模式简介
- XP远程连接Win10,提示【远程计算机需要网络级别身份验证,而您的计算机不支持该验证】