asp.net 导出excel 中文乱码解决方法

原创 2012年05月29日 10:29:00

用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象

其实要解决中文乱码很简单,设置一下字符集。如下:

                // 设置编码和附件格式 
                   curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                curContext.Response.Charset = "gb2312";



 另外,在输出的时候,最好加上以下语句:

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

 

                // 返回客户端 
                dgExport.RenderControl(htmlWriter);
                curContext.Response.Clear();
                curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString());
                curContext.Response.End();


完整方法如下:

        /// <summary> 
        /// 把DataTable内容导出excel并返回客户端 
        /// </summary> 
        /// <param name="dgData">待导出的DataTable</param> 
        /// 创 建 人:陈文凯 
        /// 创建日期:2005年10月08日 
        /// 修 改 人: ranbolwb  修改导出中文乱码的问题
        /// 修改日期: 2012-05-29
        public static void DataTable2Excel(System.Data.DataTable dtData)
        {
            System.Web.UI.WebControls.DataGrid dgExport = null;
            // 当前对话 
            System.Web.HttpContext curContext = System.Web.HttpContext.Current;
            // IO用于导出并返回excel文件 
            System.IO.StringWriter strWriter = null;
            System.Web.UI.HtmlTextWriter htmlWriter = null;

            if (dtData != null)
            {
                // 设置编码和附件格式 
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                curContext.Response.Charset = "gb2312";

                // 导出excel文件 
                strWriter = new System.IO.StringWriter();
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

                // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid 
                dgExport = new System.Web.UI.WebControls.DataGrid();
                dgExport.DataSource = dtData.DefaultView;
                dgExport.AllowPaging = false;
                dgExport.DataBind();

                // 返回客户端 
                dgExport.RenderControl(htmlWriter);
                curContext.Response.Clear();
                curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=gb2312\"/>" + strWriter.ToString());
                curContext.Response.End();
            }
        }


 

参考:http://www.cnblogs.com/cbcye/archive/2009/05/26/1490451.html

 

 

java-导出excel并解决乱码问题

技术 struts2+easyui(参考,主要解决编码和excel导出问题) 表单的设置 accept-charset="GBK" onsubmit="if(!!window.ActiveXOb...
  • xiaoyatouvsanan
  • xiaoyatouvsanan
  • 2015年05月30日 15:49
  • 3012

JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法

先上一段代码(上好的代码,多年陈酿) OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8");...
  • youzhouliu
  • youzhouliu
  • 2016年07月26日 19:41
  • 8616

Excel导入中文到MYSQL遇到无法导入以及导入后乱码问题

load data local infile'/Users/Sine1/Downloads/data_test.csv' into table searchingsystem.Talent field...
  • u010599923
  • u010599923
  • 2016年12月10日 13:47
  • 2853

ASP.NET jquery.uploadify文件上传控件测试项目(已解决中文乱码)

  • 2011年03月09日 17:18
  • 669KB
  • 下载

asp.net中URL参数传值中文乱码的三种解决办法

在做Asp.Net开发的时候,参数传递中文时,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考: 解决的方法一般有3种: 1.设置web.config文件 ....
  • u011498721
  • u011498721
  • 2015年12月21日 17:57
  • 339

解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常

在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。 实际使用 asp.net 向客户端输出文件流时,却出现了异常: 1、空格问题...
  • shili3211
  • shili3211
  • 2011年12月02日 21:43
  • 808

Asp.net utf-8 编码中文乱码完全解决方案

 Unicode 编码正逐渐成为多语言支持的最通用解决方案。采用 Unicode 编码的中文网页能在各种平台、各种类的浏览器上都得到很好的兼容。utf-8 是 Unicode 的一种存储/交换实...
  • proglovercn
  • proglovercn
  • 2014年11月28日 02:33
  • 676

ASP.NET解决中文乱码

1.设置web.config文件 system.web>  ......  globalization requestEncoding="gb2312" responseEncoding...
  • L0veIT
  • L0veIT
  • 2012年08月06日 15:22
  • 465

解决FCKeditor For asp.net 上传图片时中文乱码问题

在web.config中加入:这样设置后可以显示中文的文件,但URL地址也是中文的;如果服务器对中文地址的解析不好,可能导致图片无法浏览;所以修改:editor/filemanager/browser...
  • shuyizhi
  • shuyizhi
  • 2011年06月09日 10:22
  • 807

Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案

一、首先,说一下我要实现的功能     根据老师ID、学年、学期,查询该教师教授的课程信息。 二、传递参数我遇到的问题:     我通过传递教师ID、学年和学期从数据库查询出该教师...
  • mazhaojuan
  • mazhaojuan
  • 2013年01月31日 10:12
  • 7008
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net 导出excel 中文乱码解决方法
举报原因:
原因补充:

(最多只允许输入30个字)