请问如何用c#将DataGrid里资料导到Excel??

解决方案 »

  1.   

    源码:
    public void ToExcel(System.Web.UI.Control ctl)  
      {
       HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
       HttpContext.Current.Response.Charset ="UTF-8";    
       HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
       HttpContext.Current.Response.C;//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
       ctl.Page.EnableViewState =false;   
       System.IO.StringWriter  tw = new System.IO.StringWriter() ;
       System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
       ctl.RenderControl(hw);
       HttpContext.Current.Response.Write(tw.ToString());
       HttpContext.Current.Response.End();
      }调用:
    private void btnExcel_Click(object sender, System.EventArgs e)
      {
       ToExcel(this.DataGrid1);
      }
      

  2.   

    protected void btnExportExcel_Click(object sender, EventArgs e)
    {
    Response.Clear();
    Response.Buffer = true;
    Response.Charset = "GB2312";
    string _today = string.Format("{0:yyyyMMdd}", DateTime.Now.Date);
    if (ViewState["leaderName"] == null)
    {
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode("标题") + "-" + _today + ".xls");
    }
    else
    {
    Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode("标题") + "-" + Server.UrlEncode(ViewState["leaderName"].ToString()) + "-" + _today + ".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); ///
    Repeater rep = rep_Jourey;
    rep.Controls[0].FindControl("delHead").Visible = false;
    rep.Controls[0].FindControl("modifyHead").Visible = false;
    //隐藏修改 删除
    //if (!Bussiness.IsManager(this))
    //{           
    foreach (RepeaterItem item in rep.Items)
    {
    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
    {
    //item.FindControl("null1").Visible = false;
    //item.FindControl("null2").Visible = false;
    //item.FindControl("null3").Visible = false;
    //item.FindControl("null4").Visible = false;
    //item.FindControl("null5").Visible = false;
    //item.FindControl("null6").Visible = false;
    //item.FindControl("null7").Visible = false;
    //item.FindControl("null8").Visible = false;
    //item.FindControl("null9").Visible = false;
    //item.FindControl("null10").Visible = false;
    //item.FindControl("null11").Visible = false;
    item.FindControl("hideID").Visible = false;
    Repeater rep_in = (Repeater)item.FindControl("rep_in");
    foreach (RepeaterItem itemIn in rep_in.Items)
    {
    if (itemIn.ItemType == ListItemType.Item || itemIn.ItemType == ListItemType.AlternatingItem)
    {
    itemIn.FindControl("del").Visible = false;
    itemIn.FindControl("modify").Visible = false;
    }
    }
    }
    }
    //}
    rep.RenderControl(oHtmlTextWriter);
    /// Response.Output.Write(oStringWriter.ToString());
    Response.Flush();
    Response.End();
    } public override void VerifyRenderingInServerForm(Control control)
    {
                            //必须加上这段 
    }
    自己删除不必要的代码