有一个windows程序,用c#编写,现有一个datagrid控件将所有的内容显示出来,我想将datagrid转到excel中,有何办法,或者那里可以找到现成的控件。

解决方案 »

  1.   

    好像有难度阿,只做过读excel文件的还没有写过呢,关注啊
      

  2.   

    Response.Clear();    Response.Buffer= true;    Response.Charset="UTF-8";    Response.AppendHeader("Content-Disposition","online;filename=FileFlow.xls");  Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-8"); 

    Response.ContentType = "application/ms-excel";

    this.EnableViewState = false; System.IO.StringWriter oStringWriter = new System.IO.StringWriter();    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); this.DataGrid1.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString());    Response.End();
      

  3.   

    将datagrid数据源的数据转入excel文件就可以了
    加一个excel的com组件,然后利用他把数据导入Excel文件
    具体用法,例如:(dt为数据源)
    Excel.Application excelApp = new Excel.Application();
    excelApp.Visible = false;
    excelApp.Caption = "资产盘点清单";
    excelApp.Workbooks.Add(Type.Missing);//
    excelApp.Worksheets.Add(Type.Missing,Type.Missing,Type.Missing,Type.Missing);//资产查询结果sheet
    //调整后列头信息-2
    excelApp.Cells[1,1] = "资产名称";
    excelApp.Cells[1,2] = "规格型号";
    excelApp.Cells[1,3] = "资产数量";
    excelApp.Cells[1,4] = "资产减少数量";
    excelApp.Cells[1,5] = "备注";

    //添加调整后信息-2
    for(int i=2;i<dt.Rows.Count+2;i++)
    {
    excelApp.Cells[i,1]=dt.Rows[i-2]["Name"].ToString();
    excelApp.Cells[i,2]=dt.Rows[i-2]["Standard"].ToString();
    excelApp.Cells[i,3]=dt.Rows[i-2]["Amount"].ToString();
    excelApp.Cells[i,4]="";
    excelApp.Cells[i,5]=dt.Rows[i-2]["Re"].ToString();


    } this.m_fmWait.Close();
    this.m_fmWait = null;
    //保存数据表 this.saveXslFileDig.Filter = "Excel文件(*.xls)|*.xls";
    string strExcelFileName="";
    if(this.saveXslFileDig.ShowDialog()==DialogResult.OK)
    {

    strExcelFileName = this.saveXslFileDig.FileName; }
    else
    {
    if(!System.IO.Directory.Exists(Application.StartupPath+"\\temp"))
    {
    System.IO.Directory.CreateDirectory(Application.StartupPath+"\\temp");
    }
    strExcelFileName=Application.StartupPath+"\\temp\\AssetSearch.xls";
    } excelApp.ActiveWorkbook.SaveAs(strExcelFileName,Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null); excelApp.Quit();
    excelApp=null;
                
    GC.Collect();//垃圾回收
      

  4.   

    楼上的saveXslFileDig和Application.StartupPath是在哪个命名空间里面的啊?
    我引用了Excel的Com
    那2个东西还是找不到啊
      

  5.   

    http://www.cnblogs.com/lovecherry/archive/2005/03/25/125519.html