用C#做网站,想将客户端的datagride中的数据通过单击按钮导入倒excel,该如何实现呢,各位高手救命啊,急

解决方案 »

  1.   

    /// <summary>
    /// 输出到Excel
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void Button1_Click(object sender, System.EventArgs e)
    {
    Response.Clear(); 
    Response.Buffer= true; 
    Response.Charset="GB2312";    
    Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls"); 
    Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
    Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
    this.EnableViewState = false;    
    System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); 
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
    this.DataGrid1.RenderControl(oHtmlTextWriter); 
    Response.Write(oStringWriter.ToString());
    Response.End();
    }
      

  2.   

    private void HtmlToExcel(string FileType, string FileName)
            {
                Response.Clear();
                Response.Charset = "utf-8";
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(FileName));
                Response.ContentType = FileType;
                this.EnableViewState = false;
                StringWriter tw = new StringWriter();
                HtmlTextWriter hw = new HtmlTextWriter(tw);
                divtest.RenderControl(hw);
                Response.Write(tw.ToString());
                Response.End();
    }//然後在按鈕裡調用此函數:
    HtmlToExcel("application/ms-excel", "Test.xls"); //其中"Test.xls"是EXCEL的文件名
      

  3.   

    呵呵,忘了告訴樓主,把我貼的代碼裡的“divtest”改成DataGrid名稱即可。
      

  4.   

    最简单的方法,从页面的取datagird1.innerHTML(或outerHTML) saveas成xsl的文件即可,格式数据全有,excel可以解析html