下面代码导出Excel2003没有任何问题:        public void Export(string FileName, GridView gridview)
        {
            //用来控制添加,删除,编辑等按钮不输出,如果没有,可以隐掉代码!
            for (int i = this._hidStartPos; i < this._hidEndPos; i++)
            {
                gridview.Columns[i].Visible = false;
            }
            Response.Charset = "GB2312";
            Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>");
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); 
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
            Response.ContentType = "application/ms-excel";//导出excel文件
            //this.EnableViewState = false;
            StringWriter tw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(tw);
            gridview.AllowPaging = false;//写到Excel的数据不用分页            gridview.RenderControl(hw);
            Response.Write(tw.ToString());
            Response.End();
            gridview.AllowPaging = true;//恢复分页
        }
但是导出到2007时,导出后用excel 2007打开提示单元格数据量过大 ...然后你们就有一行乱字符数据....求各位给点建议....

解决方案 »

  1.   

    07的后缀改变了
    http://topic.csdn.net/u/20100318/11/8984259f-694f-4a97-ba88-73693c54e6cf.html
      

  2.   

    Response.ContentType = "application/ms-excel";
    改成
    Response.ContentType = "application/vnd.xls";???
    我试过了还是这样啊!
      

  3.   


            StringBuilder sb = new  StringBuilder();
            StringWriter sw = new StringWriter(sb);
            HtmlTextWriter htw = new HtmlTextWriter(sw);        Page page = new Page();
            HtmlForm form = new HtmlForm();       
            page.Controls.Add(form);
                  page.RenderControl(htw);        Response.Clear();
            Response.Buffer = true;
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Disposition", "attachment;filename=data.xls");
            Response.Charset = "UTF-8";
            Response.ContentEncoding = Encoding.Default;
            Response.Write(sb.ToString());
            Response.End();
      

  4.   

    Response.Clear();
      Response.Buffer = true;
      Response.Charset = "GB2312";
      Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>");
      Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());//FileName.xls");
      Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
      Response.ContentType = "application/vnd.xls";//设置输出文件类型为excel文件。
      System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
      System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
      Gridview1.RenderControl(oHtmlTextWriter);
      Response.Output.Write(oStringWriter.ToString());
      Response.Flush();
      Response.End();
    这个居然可以,谢谢了!