如题~C#中怎么从如何将DataGridView中的数据导出到Excel中(WINFORM中,不是在WEB)在网上找了好久都没有找到,有的只是在WEB里面实现,而我是想在WINFORM下实现的,不过连了MSDN的例子都运行不了,参照下面的文章做了,还是不行,最后把Microsoft.Office.Interop.Excel这个DLL都加进项目都不行,实在没有办法了,望那位高手指教一下~http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_vsto2003_ta/html/ExcelObj.asphttp://www.programfan.com/club/showtxt.asp?id=94237

解决方案 »

  1.   

    不管是winform还是web都一样.都是通过datagrid的数据源DataTable来导出的.也就是Datatable->excel.
      

  2.   

    先谢谢楼上的回答~
    但我实验过就是不一样,在WEB里面的方法在WINFORM中不管用,所以才发此贴~
    还有我现在想知道的是DataGridView(2.0的控件)实现的方法
    另外还有正如我所说的连Microsoft.Office.Interop.Excel这个DLL都加进项目都不行,连打开EXCEL也不行,请会的朋友再指点一下我这个菜鸟~谢谢
      

  3.   

    private void menuItem16_Click(object sender, System.EventArgs e)
    {
    ds.Tables["CurrentTable"].AcceptChanges();
    this.Cursor=Cursors.WaitCursor;
    Excel.Application myExcel=new Excel.Application();
    myExcel.Application.Workbooks.Add(true);
    myExcel.Visible=true;
    myExcel.Cells[1,1]=this.dataGrid1.CaptionText;
    //Object Date[ds.Tables["CurrentTable"].Rows.Count][ds.Tables["CurrentTable"].Columns.Count];
    //生成标题
    for(int i=0;i<ds.Tables["CurrentTable"].Columns.Count;i++)
    {
    myExcel.Cells[2,i+1]=ds.Tables["CurrentTable"].Columns[i].Caption;
    }
    //填充数据
    for(int i=0;i<ds.Tables["CurrentTable"].Rows.Count;i++)
    {
    for(int j=0;j<ds.Tables["CurrentTable"].Columns.Count;j++)
    {
    if(ds.Tables["CurrentTable"].Rows[i][j].GetType()==typeof(System.String))

    {

    myExcel.Cells[i+3,j+1]="'"+ds.Tables["CurrentTable"].Rows[i][j].ToString();
    }
    else
    {
    myExcel.Cells[i+3,j+1]=ds.Tables["CurrentTable"].Rows[i][j].ToString();
    }
    }
    }

    this.Cursor=Cursors.Default;
    MessageBox.Show("导出成功!               ","恭喜",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
    }
      

  4.   

    谢谢楼上的代码说明,其实在MSDN上我也看到过类似的,但就有一个问题Excel.Application这个用什么引用啊,我把Microsoft.Office.Interop.Excel加上也不行,望再赐教~
      

  5.   

    就是编译你本地机器上的Excel.exe文件,(据说用这个文件编译成DLL文件后可在2K,XP,2003等系统上通用,如果是编译Excel9.olb则不同的系统要出错,还未试)。用TlbImp.exe excel.exe编译后即生成exdel.dll,然后拷贝你的应用程序文件夹,再添加“引用”,参照上面这段代码即可完成。其中TibImp.exe可在你本同上搜索得到!
      

  6.   

    建议参考:http://community.csdn.net/Expert/TopicView.asp?id=4570895这个帖子,已经说得很详细了!