zoukankan      html  css  js  c++  java
  • 采用UTF8格式导出Excel存在乱码解决方法

    目前我们开发Excel导出时,多数使用ExportToExcelCommon类导出Excel,通常情况下不会产生乱码,但在某些时候还是会产生乱码。解决方法很简单,只需要在ExportToExcel()方法中多加一句代码即可,ExportToExcel()方法如下:
    
    string fileName;
                HttpContext.Current.Response.Buffer = true;
                HttpContext.Current.Response.ClearContent();
                HttpContext.Current.Response.ClearHeaders();
                HttpContext.Current.Response.Clear();
                HttpContext.Current.Response.Charset = "UTF-8";
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
                HttpContext.Current.Response.HeaderEncoding = System.Text.Encoding.UTF8;
    
                fileName = string.Format("AOMS Export-{0:yyyy-MM-dd_HH_mm_ss}.xls", DateTime.Now);
                HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
                //设置输出文件类型为excel文件。
                HttpContext.Current.Response.ContentType = "application/ms-excel";
                StringWriter tw = new System.IO.StringWriter();
                HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
                gvw.RenderControl(hw);
                if (!string.IsNullOrEmpty(title))
                {
                    HttpContext.Current.Response.Write("<b><center><font size=3 face=Verdana color=#0000FF>" + title + "</font></center></b>");
                }
                HttpContext.Current.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>");
                HttpContext.Current.Response.Write(tw.ToString());
                HttpContext.Current.Response.Flush();
                HttpContext.Current.Response.Close();
                HttpContext.Current.Response.End();
    
                gvw.Dispose();
                tw.Dispose();
                hw.Dispose();
    
                gvw = null;
                tw = null;
             hw = null;
    注意上述代码的重点在于这一句:
    HttpContext.Current.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>");
    在导出方法中加入这一句代码,即可防止采用UTF-8格式导出Excel时出现乱码。
  • 相关阅读:
    TCP Socket服务器编程[转文]
    http协议学习和总结系列[转 ]
    linux C函数大全
    HTTP 协议详解
    Pthread 多线程总结
    linux 中解析命令行参数 (getopt_long用法)
    微软企业库4.1学习笔记(十八)缓存模块6 缓存的设计目的
    微软企业库4.1学习笔记(十七)缓存模块5 缓存的典型用法
    进程和线程的区别
    C#二叉树遍历算法实现浅析
  • 原文地址:https://www.cnblogs.com/Areas/p/2792095.html
Copyright © 2011-2022 走看看