WinForms 介面含 ComboBox 選擇匯出方式、Button 觸發執行。七種案例對應七個私有方法。
Range.Value,適合少量資料。object[,],一次 Range.Value = arr 批量寫入,效能大幅提升。OleDbDataReader 讀取 Access,Range.CopyFromRecordset 一次匯入整個資料集。QueryTable 連結資料庫,Refresh() 直接將查詢結果填入工作表。Worksheet.Paste 貼上至 Excel。Workbooks.OpenText 開啟並另存為 .xls。INSERT SQL 直接寫入工作表(需工作表已存在同名表格)。private Excel.Application m_objExcel;
private Excel.Workbooks m_objBooks;
private Excel._Workbook m_objBook;
private Excel.Sheets m_obJSheets;
private Excel._Worksheet m_obJSheet;
private Excel.Range m_objRange;
private object m_objOpt = System.Reflection.Missing.Value;
每次執行結束釋放 COM 物件參考並呼叫 GC.Collect():
m_objFont = null; m_objRange = null; m_obJSheet = null;
m_obJSheets = null; m_objBooks = null; m_objBook = null; m_objExcel = null;
GC.Collect();
Range.get_Resize(rows, cols) 擴展範圍以匹配陣列維度。CopyFromRecordset 高效匯入 ADO Recordset。QueryTable 適合大量資料直接從資料庫刷新。Extended Properties=Excel 8.0。