在DataGriD内的显示的数据不用在出报表的情况下导出.直接点击"导出"时导入到Excel库中

解决方案 »

  1.   

    我好像记得datagrid有个save函数,直接保存为xml文件,用2003EXCEL可以打开,而且信息相当多。字段名称,类型。都有。
    最好自己写一个xml,这个玩意好用。
      

  2.   

    如果装了Office2003的话,直接引用Excel.exe
    然后...
    就可以调用Excel提供的接口了,但必须在安装了Excel的机器上才能够执行
      

  3.   

    是winform的吧,你可以在DataSet中导出,如果不怕麻烦可以用水晶报表那个预LAN的控件,就有一个导出方法!
      

  4.   

    注意先添加引用!
    DataTable dt = new DataTable();
    dt=(DataTable)dataGrid1.DataSource;
    outexcel(dt);
    //////
    void outexcel(DataTable dt)
    {
    if (dt.Columns.Count == 0) return;
    Excel.Application excel = new Excel.ApplicationClass();
    Excel.Workbooks workbooks = excel.Workbooks;   
    Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
    Excel.Sheets worksheets = workbook.Worksheets;
    Excel.Worksheet sheet = (Excel.Worksheet) worksheets.get_Item(1);
    excel.Visible = true;
    Excel.Range range;
    Object[,] asd=new object[dt.Rows.Count + 1,dt.Columns.Count + 1];
    int i=0,j=0;
    foreach(DataColumn dc in dt.Columns)
    {
    i++;
    asd[0,i-1] = dc.ColumnName.ToString();
    }
    range = excel.get_Range("A1",Missing.Value);
    range = range.get_Resize(dt.Rows.Count+1,dt.Columns.Count+1);
    i=0;
    foreach(DataRow dr in dt.Rows)
    {
    i++;
    foreach(DataColumn dc in dt.Columns)
    {
    asd[i,j]=dr[dc].ToString().Trim();
    j++;
    }

    j=0;
    }
    range.Value2 = asd;
    excel.Quit();
    }
      

  5.   

    用owc控件很简单的,两三行代码就可以,没有的话可以发邮件给我,我发给你[email protected]