// 定義 Excel 儲存的路徑
// 以程式執行檔 (.exe) 所在資料夾作為儲存路徑
string strCurrentPath = Directory.GetCurrentDirectory() + "\\";
// 定義 Excel 儲存的檔名
string ExcelFileName = "新增Microsoft Excel 工作表.xls";
/* 檢查檔案是否已存在, 若已存在則先刪除舊檔 */
/* FileInfo 使用前需先 using System.IO; */
/* Thread 使用前需先 using System.Threading; */
FileInfo fiExcelFile = new FileInfo(ExcelFileName);
if (fiExcelFile.Exists)
{
// 刪除舊檔
fiExcelFile.Delete();
// 因為怕刪檔需要時間, 為避免影響程式進行, 讓程式等待 500 亳秒
Thread.Sleep(500);
}
if (fiExcelFile.Exists)
{
// 刪除舊檔
fiExcelFile.Delete();
// 因為怕刪檔需要時間, 為避免影響程式進行, 讓程式等待 500 亳秒
Thread.Sleep(500);
}
// 進行存檔動作 [參考MSDN]
ExcelBook.SaveAs(strCurrentPath + ExcelFileName, System.Type.Missing, System.Type.Missing, System.Type.Missing, false, false, XlSaveAsAccessMode.xlNoChange, System.Type.Missing, false, System.Type.Missing, System.Type.Missing, System.Type.Missing);
// 因為後面還有關閉 Excel 動作, 為避免還沒存完檔就被關閉, 先等待 1000 亳秒
Thread.Sleep(1000);
// 因為後面還有關閉 Excel 動作, 為避免還沒存完檔就被關閉, 先等待 1000 亳秒
Thread.Sleep(1000);
// 關閉 Excel 應用程式
// 為避免 Excel 跳出確認訊息, 將 Workbook.Saved 屬性設為 true [參考MSDN]
ExcelBook.Saved = true;
ExcelApp.Quit();
ExcelApp = null;
ExcelApp.Quit();
ExcelApp = null;
/* 在建立 Excel Application 時, 系統就會執行一個 EXCEL.exe */
/* 此時雖然利用 Application.Quit() 關閉 Excel Application */
/* 但實際上 EXCEL.exe 並不會跟著關閉 */
/* 所以要用 .NET 的 Garbage Collection 將 EXCEL.exe 關閉 *//* Garbage Collection 使用前需先 using System; */
GC.Collect();
GC.WaitForPendingFinalizers();
GC.WaitForPendingFinalizers();
沒有留言:
張貼留言