先看代码:
         Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", "attachment;filename=ExcelName.xls");
        Response.ContentEncoding = System.Text.Encoding.UTF7;
        Response.ContentType = "application/ms-excel";   //设置输出文件类型为excel文件。 
         System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        this.EnableViewState = false;
       
        TextBox1.RenderControl(oHtmlTextWriter);
        Response.Output.Write(oStringWriter.ToString());        Response.Flush();
        Response.End();这是我第一次做Excel导出。我在TextBox1中输入as9527后,打开导出的Excel后内容为"+ADw-input name+AD0AIg-ctl00+ACQ-ContentPlaceHolder1+ACQ-TextBox1+ACI- type+AD0AIg-text+ACI- value+AD0AIg-as9527+ACI- id+AD0AIg-ctl00+AF8-ContentPlaceHolder1+AF8-TextBox1+ACI- /+AD4-"
我之前用GridView.RenderControl方法,明明里面是一张表,但打开后是类似以上的两行乱码,请教是怎么回事,是不是我在哪一块疏忽了。

解决方案 »

  1.   

    protected void btnImpExecl_Click(object sender, EventArgs e)
        {
            Response.ClearContent();
            Response.AddHeader("content-disposition", "attachment; filename=ExcelName.xls"); 
            Response.ContentType = "application/excel";
            StringWriter sw = new StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            GridView1.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End();
        }