您的位置:首页 > 移动开发 > Objective-C

怎么由DataSet将数据导入Excel?

2005-03-24 19:43 447 查看



        /**//// <summary>


        /// 将DataSet里所有数据导入Excel


        /// 需要添加COM: Microsoft Excel Object Library


        /// using Excel;


        /// </summary>


        /// <param name="filePath">文件路径</param>


        /// <param name="ds">需要转存的DataSet</param>


        public static void ExportToExcel(string filePath, DataSet ds)




        ...{


            object oMissing = System.Reflection.Missing.Value;


            Excel.ApplicationClass xlApp = new Excel.ApplicationClass();


            try




            ...{


                // 打开Excel文件。以下为Office 2000.


                Excel.Workbook xlWorkbook =


                    xlApp.Workbooks.Open(filePath, oMissing, oMissing,


                                          oMissing, oMissing, oMissing,


                                          oMissing, oMissing, oMissing,


                                          oMissing, oMissing, oMissing,


                                          oMissing);


 


                Excel.Worksheet xlWorksheet;


                // 循环所有DataTable


                for( int i=0; i<ds.Tables.Count; i++ )




                ...{


                    // 添加入一个新的Sheet页


                    xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.Add(oMissing,oMissing,1,oMissing);


 


                    // 以TableName作为新加的Sheet页名


                    xlWorksheet.Name = ds.Tables[i].TableName;


 


                    // 取出这个DataTable中的所有值,暂存于stringBuffer中


                    System.Text.StringBuilder stringBuffer = new System.Text.StringBuilder();


 


                    for( int j=0; j<ds.Tables[i].Rows.Count; j++ )




                    ...{


                        for( int k=0; k<ds.Tables[i].Columns.Count; k++ )




                        ...{
                                stringBuffer.Append((string)ds.Tables[i].Rows[j][k]);


                            if( k < ds.Tables[i].Columns.Count - 1 )


                                stringBuffer.Append("/t");


                        }


                        stringBuffer.Append("/n");


                    }


                    // 利用系统剪切板


                    System.Windows.Forms.Clipboard.SetDataObject("");


 


                    // 将stringBuffer放入剪切板


                    System.Windows.Forms.Clipboard.SetDataObject(stringBuffer);


 


                    // 选中这个sheet页中的第一个单元格(下标从1开始)


                    ((Excel.Range)xlWorksheet.Cells[1,1]).Select();


 


                    // 将剪切板里的内容粘贴在Sheet中


                    xlWorksheet.Paste(oMissing,oMissing);


 


                    // 清空系统剪切板


                    System.Windows.Forms.Clipboard.SetDataObject("");


                }


 


                // 保存并关闭这个工作簿


                xlWorkbook.Close( Excel.XlSaveAction.xlSaveChanges, oMissing, oMissing );


                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook);


                xlWorkbook = null;


            }


            catch(Exception ex)           




            ...{


                MessageBox.Show(ex.Message);


            }


            finally




            ...{


                // 释放COM对象


                xlApp.Quit();


                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);


                GC.Collect();


            }


        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息