zoukankan      html  css  js  c++  java
  • 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> 比较保险

  • 相关阅读:
    java基础部分的一些有意思的东西。
    antdvue按需加载插件babelpluginimport报错
    阿超的烦恼 javaScript篇
    .NET E F(Entity Framework)框架 DataBase First 和 Code First 简单用法。
    JQuery获得input ID相同但是type不同的方法
    gridview的删除,修改,数据绑定处理
    jgGrid数据格式
    Cannot read configuration file due to insufficient permissions
    Invoke action which type of result is JsonResult on controller from view using Ajax or geJSon
    Entity model数据库连接
  • 原文地址:https://www.cnblogs.com/zhwl/p/1964632.html
Copyright © 2011-2022 走看看