如何將dataset導入到excel表中的多個sheet中

 //一個dataset到一個excel文件
        public void doExport(DataSet ds,string strExcelFileName)
        {
            String[] tableNames = new String[] { 多個表名 };
            
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            try
            {
                excel.Visible = false;
                //設置禁止彈出保存和覆蓋的詢問提示框
                excel.DisplayAlerts = false;
                excel.AlertBeforeOverwriting = false;

                //增加一個工作簿
                Workbook book = excel.Workbooks.Add(true);
                //添加工作表
                Worksheet sheets = (Microsoft.Office.Interop.Excel.Worksheet)
                    book.Worksheets.Add(Missing.Value, Missing.Value, 9, Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
               
                for (int i = 0 ; i < 表的數量; i++)
                {
                    System.Data.DataTable table = ds.Tables[i];
                    //獲取一個工作表
                    Worksheet sheet = book.Worksheets[i + 1] as Worksheet;
                    int rowIndex = 1;
                    int colIndex = 0;

                    foreach (DataColumn col in table.Columns)
                    {
                        colIndex++;
                        sheet.Cells[1, colIndex] = col.ColumnName;
                    }
                    foreach (DataRow row in table.Rows)
                    {
                        rowIndex++;
                        colIndex = 0;
                        foreach (DataColumn col in table.Columns)
                        {
                            colIndex++;
                            //sheet.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
                            //在這裏要在數字前加前單引號
                            String typeName = row[col.ColumnName].GetType().ToString();
                            sheet.Cells[rowIndex, colIndex] = typeCheckAdd(row[col.ColumnName].ToString(), typeName);
                        }
                    }
                    sheet.Name = tableNames[i];
                }

                //book.Save();
                book.SaveAs(strExcelFileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                   Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                //excel.Save(strExcelFileName);

            }
            catch (Exception err)
            {
                MessageBox.Show("導入Excel出錯!錯誤原因:" + err.Message, "錯誤提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                excel.Quit();
                excel = null;
                GC.Collect();
            }
        }
        //若是大數需加前導引號變成字符串
        public String typeCheckAdd(String cellContent,String strType)
        {
            String cellContentAdd;
            switch (strType)
            {
                case "System.String":
                    cellContentAdd = "'" + cellContent;
                    break;
                default:
                    cellContentAdd = cellContent;
                    break;

            }
            return cellContentAdd;
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章