Response.Clear();
        Response.Buffer = false;
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", "attachment;filename=pkmv_de.xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        Response.ContentType = "application/vnd.ms-excel";
        //Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=GB2312\">");
        //this.EnableViewState = false;
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
        this.gvtest.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());
        Response.End();
 
我打开 用上面的代码 生成的 excel 后 打开 excel 另存为的时候 出现下面的结果 

解决方案 »

  1.   

    public void OutPutExcel()
            {
                //定义文档类型、字符编码
                Response.Clear();
              Response.Buffer= true;
              Response.Charset="GB2312";
                //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
              //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm
              Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");
              Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
              //Response.ContentType指定文件类型 可以为application/ms-excel、application/ms-word、application/ms-txt、application/ms-html 或其他浏览器可直接支持文档
              Response.ContentType = "application/ms-excel";
              this.EnableViewState = false;
                // 定义一个输入流
              System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
              System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);            this.RenderControl(oHtmlTextWriter);
              //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
              Response.Write(oStringWriter.ToString());
              Response.End();
            }
      

  2.   

    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", HttpUtility.UrlEncode("人员及车辆流量统计报表.xls"), System.Text.Encoding.UTF8));
     你可以自己定义名字。