http://dotnet.aspx.cc/ShowDetail.aspx?id=BF0A54F9-C7C7-4200-BD9A-802AC1F5DE50

解决方案 »

  1.   

    http://www.aspnetpro.com/NewsletterArticle/2003/09/asp200309so_l/asp200309so_l.asp
      

  2.   

    DataGrid1.DataSource=.....;//绑定你的数据到页面DataGrid中
    DataGrid1.DataBind();
    Response.ContentType = "application/vnd.ms-excel";//输出格式设置为Excel就可以了
    Response.Charset = "GB2312";
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
    System.IO.StringWriter tw =new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter hw =new System.Web.UI.HtmlTextWriter(tw);
    DataGrid1.RenderControl(hw);
    Response.Write(tw.ToString());
    Response.End();
      

  3.   

    nstorm(网の风),你的方法我试过了,不行啊,老是在DataGrid1.RenderControl(hw);一行出现"你必须将....放在RANAT=SERVER"的窗体内,我的窗体已经是ranat=server了,不知道为什么不行,还有,这种方法保存的路径是哪里啊,可不可以弹出个保存对话框,输入保存路径啊
      

  4.   

    http://www.cnblogs.com/fecitsky/articles/32266.aspx
      

  5.   

    好像是DataGrid里面有按钮列会出现那样的报错,如果全部是绑定的数据列可保存,至于保存的路径,会有对话框弹出来,不用在代码里再写不知道有按钮列怎么保存,请赐教
      

  6.   

    打印函数
    private void Button2_Click(object sender, System.EventArgs e)
    {


    if(this.DataGrid1.Items.Count!=0)
    {


    Excel.Application app = new Excel.Application();
    if(app!=null)
    {
    app.Visible = true;
    Excel.Workbooks wbs = app.Workbooks;
    Excel.Workbook wb = wbs.Add(Excel.XlWBATemplate.xlWBATWorksheet);
    Excel.Sheets wss = wb.Worksheets;
    Excel.Worksheet ws = (Excel.Worksheet)wss.get_Item(1);
    Excel.Range r = ws.get_Range("A1","G32");
    r[1,1] = "班级名称";
    r[1,2] = "学员编号";
    r[1,3] = "最低分数";
    r[1,4] = "最高分数";
            r[1,5] = "平均分数";
    DataSet dv = (DataSet)Session["myset1"];
    for(int i=0;i<dv.Tables[0].Rows.Count;i++)
    for(int j=1;j<6;j++)
    r[i+2,j] = dv.Tables[0].Rows[i][j-1].ToString();
    }
    }

    }