• 卡卡   2014/11/18 13:21:00
  • ASP.NET如何解决导出Excel中文编码乱码的问题?
  • 关键字: 导出excel 中文乱码 编码
  • 问题:ASP.NET如何解决导出Excel中文编码乱码的问题? 
    代码如下:
    1. protected void btnExcel_Click(object sender, EventArgs e)  
    2.   {  
    3.       List<bUFlow.Model.orderhistory> orderlist = dal.GetOrderList2("");  
    4.       string filename = "3g流量网龄升级计划用户表";  
    5.       string name1 = filename;  
    6.       string bname = Common.MyRequest.GetBrowserName().ToLower();  
    7.       if (bname.Contains("firefox"))  
    8.       {  
    9.       }  
    10.       else if (bname.Contains("ie"))  
    11.       {  
    12.           filename = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);  
    13.       }  
    14.       else  
    15.       {  
    16.           filename = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);  
    17.       }  
    18.   
    19.       HttpResponse resp = System.Web.HttpContext.Current.Response;  
    20.       resp.Charset = "utf-8";  
    21.       resp.Clear();  
    22.       resp.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");  
    23.       resp.ContentEncoding = System.Text.Encoding.UTF8;  
    24.   
    25.       resp.ContentType = "application/ms-excel";  
    26.       string style ="<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=utf-8\"/>"+ "<style> .table{ font: 9pt Tahoma, Verdana; color: #000000; text-align:center;  background-color:#8ECBE8;  }.table td{text-align:center;height:21px;background-color:#EFF6FF;}.table th{ font: 9pt Tahoma, Verdana; color: #000000; font-weight: bold; background-color: #8ECBEA; height:25px;  text-align:center; padding-left:10px;}</style>";  
    27.       resp.Write(style);  
    28.       //resp.Write(ExportTable(list));  
    29.       resp.Write("<table class='table'><tr><th>" +"手机"+ "</th><th>" + "渠道" + "</th><th>" +"时间" + "</th></tr>");  
    30.       //dbVideoList = (List<subShiyongModel>)Session["dbVideoList"];  
    31.       foreach (bUFlow.Model.orderhistory model in orderlist)  
    32.       {  
    33.           resp.Write("<tr><td>" + model.phone + "</td>");  
    34.           resp.Write("<td>" + model.qudao + "</td>");  
    35.           resp.Write("<td>" + model.tm + "</td>");  
    36.           resp.Write("</tr>");  
    37.       }  
    38.       resp.Write("<table>");  
    39.       resp.Flush();  
    40.       resp.End();  
    41.   }  

     需要注意的是编码的问题,在输出的时候,最好加上以下语句:

    <meta http-equiv="content-type" content="application/ms-excel; charset=gb2312"/>


大家的回答
  • 还没有人回答这个问题哦,亲,快来帮帮TA吧
  •   我来回答
  • 注册用户登录后才能发表评论,请 登录注册
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款