asp.net导出Excel乱码的原因及解决方法

 更新时间:2014年02月19日 15:41:04   作者:  
asp.net导出Excel乱码的情况时有发生,本文有个不错的解决方法,大家可以参考下
复制代码 代码如下:

protected void Excel_Click(object sender, EventArgs e)
{
Response.Charset = "UTF-8";
Response.ClearContent();
Response.Clear();
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.HeaderEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("content-disposition", "attachment; filename=MyExpress.xls");
Response.ContentType = "application/excel";
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
// turn off paging
GridView1.AllowPaging = false;
dataBind();
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
// turn the paging on again
GridView1.AllowPaging = true;
dataBind();
}

关键:
复制代码 代码如下:

Response.Charset = "UTF-8";//添加编码格式
Response.ClearContent();
Response.Clear();
Response.ContentEncoding = System.Text.Encoding.UTF8;//表格内容添加编码格式
Response.HeaderEncoding = System.Text.Encoding.UTF8;//表头添加编码格式

上边如果解决不了还可以用
复制代码 代码如下:

Response.ClearContent();
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=sumlate.xls");
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/excel";
System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
if (GridView2.Rows.Count > 0)
{
GridView2.RenderControl(htw);
}
else
{
GridView1.RenderControl(htw);
}
Response.Write(sw.ToString());
Response.End();

关键:
复制代码 代码如下:

Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

注意观察,主要原因其实就是编码格式问题。

现在就能防止导出时候乱码问题了

相关文章

  • ASP.NET WebForm中<%=%>与<%#%>的区别

    ASP.NET WebForm中<%=%>与<%#%>的区别

    这篇文章主要介绍了ASP.NET WebForm中<%=%>与<%#%>的区别,需要的朋友可以参考下
    2015-01-01
  • aspx后台传递Json到前台的两种接收方法推荐

    aspx后台传递Json到前台的两种接收方法推荐

    下面小编就为大家带来一篇aspx后台传递Json到前台的两种接收方法推荐。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • Asp.net下用JQuery找出哪一个元素引起PostBack

    Asp.net下用JQuery找出哪一个元素引起PostBack

    在Asp.net webform中,如何找出哪一个按钮触发Button PostBack事件。
    2010-06-06
  • .NET实现API版本控制

    .NET实现API版本控制

    这篇文章介绍了.NET实现API版本控制的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • c# Random快速连续产生相同随机数的解决方案

    c# Random快速连续产生相同随机数的解决方案

    在写数独基类的时候为了产生随机数的时候遇到奇怪的问题
    2009-03-03
  • asp.net 提高网站速度及如何利用缓存

    asp.net 提高网站速度及如何利用缓存

    ASP.NET提供三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存API。
    2010-01-01
  • C# 根据ip获取城市等相关信息

    C# 根据ip获取城市等相关信息

    本文将实现:得到真实IP以及所在地详细信息/通过IP得到IP所在地省市/获取HTML源码信息,感兴趣的朋友不妨了解一下,或许对你巩固所学知识有所帮助
    2013-01-01
  • C#反射技术的简单操作(读取和设置类的属性)

    C#反射技术的简单操作(读取和设置类的属性)

    反射的作用想必大家都知道了吧,少量属性的自动化操作手动添加几下当然是没有问题的,但是属性数量较多的时候敲起这些繁锁的代码可以困了,再说对扩展和维护性造成很多的不遍,以下代码中如不能直接使用请添加using System.Text;的引用。
    2011-01-01
  • 一步一步学asp.net ajax

    一步一步学asp.net ajax

    以前一直都是自己写日志,在麦库写,然后,保存,不过,感觉分享的东西就应该放在博客中,自己写的东西,像记日志的方式,更容易去思考,而不是随便堆砌,整理一下以前的学习资料
    2012-05-05
  • .net core如何在网络高并发下提高JSON的处理效率详解

    .net core如何在网络高并发下提高JSON的处理效率详解

    这篇文章主要给大家介绍了关于.net core如何在网络高并发下提高JSON的处理效率的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04

最新评论