zoukankan      html  css  js  c++  java
  • GridView导出为Excel乱码解决方案

    GridView导出Excel经常会出现乱码,这里给出一个解决方案,记录下,备用。

    /// <summary>
    /// 导出Excel(自定义编码)
    /// </summary>
    /// <param name="GridView1"></param>
    /// <param name="title"></param>
    public static void ExportExcel(System.Web.UI.WebControls.GridView GridView1, string title, string encoding)
    {
        
    //标题
        byte[] bTitle = System.Text.Encoding.GetEncoding(encoding).GetBytes(title + "<br><br>");
        StringBuilder sb 
    = new StringBuilder();
        sb.Append(System.Text.Encoding.GetEncoding(encoding).GetString(bTitle));

        
    //报表内容
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
    = new System.Web.UI.HtmlTextWriter(oStringWriter);
        GridView1.RenderControl(oHtmlTextWriter);
        
    byte[] bContent = System.Text.Encoding.GetEncoding(encoding).GetBytes(oStringWriter.ToString());
        sb.Append(System.Text.Encoding.GetEncoding(encoding).GetString(bContent));

        
    //输出
        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.Buffer 
    = true;
        System.Web.HttpContext.Current.Response.Charset 
    = encoding;
        System.Web.HttpContext.Current.Response.AppendHeader(
    "Content-Disposition""attachment;filename=FileName.xls");
        System.Web.HttpContext.Current.Response.ContentEncoding 
    = System.Text.Encoding.GetEncoding(encoding);
        System.Web.HttpContext.Current.Response.HeaderEncoding 
    = System.Text.Encoding.GetEncoding(encoding);
        System.Web.HttpContext.Current.Response.ContentType 
    = "application/ms-excel";    //设置输出文件类型为excel文件。 
        System.Web.HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset="+encoding+"\" >");

        System.Web.HttpContext.Current.Response.Write(sb.ToString());
        System.Web.HttpContext.Current.Response.End();
    }
  • 相关阅读:
    NConsoler 介绍
    HOWTO:批量删除存储过程和表
    HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面
    [架构模式实践]如何不让第三方服务/组件的故障阻碍开发和测试进度
    GDI+学习笔记
    脚印: SD2C 2009 参会小记(非技术篇)
    Expression Web使用问题,相关资源及今日阅读
    HOWTO:FirePHP乱码问题解决
    [ECSHOP挖寶]用戶注銷過程
    励志好文
  • 原文地址:https://www.cnblogs.com/liuxiaojun/p/gridview_export_excel.html
Copyright © 2011-2022 走看看