http://blog.csdn.net/net_lover/archive/2006/09/13/1217998.aspx

解决方案 »

  1.   

    //用于导出Excel的通用过程
    private void ToExcel(System.Web.UI.Control ctl,string filename)   

    HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(filename+".xls",System.Text.Encoding.UTF8)); 
    HttpContext.Current.Response.Charset ="GB2312";     
    HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.UTF8; 
    HttpContext.Current.Response.ContentType ="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword 
    ctl.Page.EnableViewState =false;    
    System.IO.StringWriter  tw = new System.IO.StringWriter() ; 
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw); 
    ctl.RenderControl(hw); 
    HttpContext.Current.Response.Write(tw.ToString()); 
    HttpContext.Current.Response.End(); 
    }
      

  2.   

    TO:gaofeng2000(高老师) 
    有没有发现这样有一个问题,假如我不想要某个列,就没办法过滤.
    比如这个GridView中有一列是编辑/删除,我不想要在EXCEL出现,没发没法实现.
      

  3.   

    可以用临时GridView解决,如故你的GridView的数据源是DataSet或者DataTable的,那么把数据源以DataTable形式传入下面的代码。
    //dtData是要导出为Excel的DataTable,FileName是要导出的Excel文件名(不加.xls)
        public static void DataTable2Excel(System.Data.DataTable dtData, String FileName)
        {
            System.Web.UI.WebControls.GridView 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)
            {
                //设置编码和附件格式 
                //System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)作用是方式中文文件名乱码
                curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
                curContext.Response.ContentType = "application/vnd.ms-excel";
                curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
                curContext.Response.Charset = "GB2312";            //导出Excel文件 
                strWriter = new System.IO.StringWriter();
                htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);            //为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的GridView 
                dgExport = new System.Web.UI.WebControls.GridView();
                dgExport.DataSource = dtData.DefaultView;
                dgExport.AllowPaging = false;
                dgExport.DataBind();            //下载到客户端 
                dgExport.RenderControl(htmlWriter);
                curContext.Response.Write(strWriter.ToString());
                curContext.Response.End();
            }
        }
      

  4.   


    http://www.51aspx.com/CV/GridViewDemo/