现在有一个gridview,要把里面的数据导出成一个excel文件.网上的例子:        HttpContext.Current.Response.Charset = "UTF-8";
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
        HttpContext.Current.Response.ContentType = "application/ms-excel";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
        ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();导出的内容带了html代码....现在不知道要怎么搞了..

解决方案 »

  1.   

    这种本来就会带html代码的吧,如果不希望这样子,那只能用其他方法导出了,用excel组件或者其他方法
      

  2.   

    http://topic.csdn.net/u/20100624/16/1bda4788-997f-4624-a40a-60e677a1e90c.html?60178
      

  3.   

    打开excel模板,遍历赋值给单元格
      

  4.   

    把DataTable 的值循环赋值 需要一个带有标题的Excel 模板
      

  5.   

    不带格式的。
     //导出Excel报表
        public void GridViewExporter(DataSet ds)
        {
            System.Data.DataTable dt = ds.Tables[0];
            StringWriter sw = new StringWriter();        string colList = "";
            for (int k = 0; k < dt.Columns.Count; k++)
            {
                if (dt.Columns.Count - 1 != k)
                    colList += dt.Columns[k] + "\t";
                else
                    colList += dt.Columns[k];
            }        sw.WriteLine(colList);
            foreach (DataRow dr in dt.Rows)
            {
                string tmplist = "";
                for (int i = 1; i < dt.Columns.Count; i++)
                {
                    if (dt.Columns.Count - 1 != i)
                    {
                        tmplist += dr[i] + "\t";
                    }
                    else
                    {
                        tmplist += dr[i];
                    }
                }
                sw.WriteLine(tmplist);
            }        sw.Close();
            Response.AddHeader("Content-Disposition", "attachment; filename=GridView.xls");
            Response.ContentType = "application/ms-excel";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            Response.Write(sw);
            Response.End();    }
      

  6.   

    private void Button3_Click(object sender, System.EventArgs e)
    {
            Export("application/ms-excel", "自命名文件名.xls");
    }
    private void Export(string FileType, string FileName)
    {
    Response.Charset = "GB2312";
    Response.ContentEncoding = System.Text.Encoding.UTF7;
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
    Response.ContentType = FileType;
    this.EnableViewState = false;
    StringWriter tw = new StringWriter();
    HtmlTextWriter hell = new HtmlTextWriter(tw);
    dg.AllowPaging = false;

    dg.RenderControl(hell);
    Response.Write(tw.ToString());
    Response.End();
    dg.AllowPaging = true;
    void BindGrid() 
    {   
    dt=(System.Data.DataTable)Session[columninf];

    DataItem=dt.DefaultView;
    DataGrid1.DataSource = DataItem;
    DataGrid1.DataBind();
    GridControlAddEvent();}
    这是我用的导出
      

  7.   

    using Excel = Microsoft.Office.Core;忘记了`引用一下`
      

  8.   

    后来使用了myxls组件解决了.一般的用excel.dll要求服务器安装office不太现实,而其他的导出文件里面都带有html代码的