changwen313 于 2017.09.14 17:47 提问
- .net gridview导出成excel汉字是乱码问题
-
.net gridview导出成excel,两个功能界面,代码是复制过来的,但是导出的excel一个汉字是乱码,一个正常,是哪里的问题呀?
代码如下,请指教
protected void btnExcel_Click(object sender, EventArgs e)
{
DateTime dt = System.DateTime.Now;
string str = dt.ToString("yyyyMMddhhmmss");
str = str + "-汇总.xls";selectFlag = 1; GridView2.AllowPaging = false; SelectGetData(); GridViewToExcel(GridView2, "application/ms-excel", str); } /// <summary> /// 将网格数据导出到Excel /// </summary> /// <param name="ctrl">网格名称(如GridView1)</param> /// <param name="FileType">要导出的文件类型(Excel:application/ms-excel)</param> /// <param name="FileName">要保存的文件名</param> public static void GridViewToExcel(Control ctrl, string FileType, string FileName) { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = false; HttpContext.Current.Response.Charset = "UTF-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");//注意编码 HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString()); //HttpContext.Current.Response.AddHeader( // "content-disposition", string.Format("attachment; filename={0}", FileName)); // HttpContext.Current.Response.ContentType = FileType;//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword HttpContext.Current.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=/text/html; charset=UTF-8/>"); ctrl.Page.EnableViewState = false; StringWriter tw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); ctrl.RenderControl(hw); HttpContext.Current.Response.Write(tw.ToString()); HttpContext.Current.Response.End(); } public override void VerifyRenderingInServerForm(Control control) { } protected void btncancel_Click(object sender, EventArgs e) { Response.Redirect("content.aspx"); }
-
- morgerton 2017.09.14 18:08
- 已采纳
这就是转码的问题,下面是答案。
https://q.cnblogs.com/q/60881/
-
- changwen313 终于找到问题了,aspx.cs里的查询语句如果是select * from 的话,数据绑定gridview问题,但是gridview导出到excel就会出现中文乱码,将*换成具体的列明,导出正常。不过也多谢你。分给你了
- 7 个月之前 回复
-
- changwen313 转码的问题吗,一个网站里,2个aspx, 代码是相互copy的,一个正常,一个乱码,这个有点不好解释了吧。郁闷
- 7 个月之前 回复
-
- qq_23934571 2017.09.17 12:01
你可以看下gridview72般绝技,里面说的很详细
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
- 其他相关推荐