|
分類:[C#]
2011/01/14(Fri) 08:34:59 編集(投稿者)
下記のプログラムを実行するとExcelのプロセスが残ったままになってしまうのですが、 残さないようにするにはどうしたら良いでしょうか?
workbookオブジェクトを追加してもプロセスが残ります。
宜しくお願い致します。
Excel.Application oXls; // Excelオブジェクト Excel.Workbooks oWBooks; ←追加 Excel.Workbook oWBook; // workbookオブジェクト Excel.Sheets oWSheets; Excel.Worksheet owWorksheet; oXls = new Excel.Application(); oXls.Visible = false; // 確認のためExcelのウィンドウを表示する oWBooks = oXls.Workbooks; ←追加 // Excelファイルをオープンする oWBook = oWBooks.Open( filename, // オープンするExcelファイル名 Type.Missing, // (省略可能)UpdateLinks (0 / 1 / 2 / 3) Type.Missing, // (省略可能)ReadOnly (True / False ) Type.Missing, // (省略可能)Format // 1:タブ / 2:カンマ (,) / 3:スペース / 4:セミコロン (;) // 5:なし / 6:引数 Delimiterで指定された文字 Type.Missing, // (省略可能)Password Type.Missing, // (省略可能)WriteResPassword Type.Missing, // (省略可能)IgnoreReadOnlyRecommended Type.Missing, // (省略可能)Origin Type.Missing, // (省略可能)Delimiter Type.Missing, // (省略可能)Editable Type.Missing, // (省略可能)Notify Type.Missing, // (省略可能)Converter Type.Missing, // (省略可能)AddToMru Type.Missing, // (省略可能)Local Type.Missing // (省略可能)CorruptLoad )); oWSheets = oWBook.Sheets; foreach (Excel.Worksheet sheets in oWSheets) { int sitosakuzyo = 2; owWorksheet = (Excel.Worksheet)oWSheets[sitosakuzyo]; oXls.DisplayAlerts = false; owWorksheet.Delete(); oXls.DisplayAlerts = true; } owWorksheet = (Excel.Worksheet)oWSheets[1]; oWBook.Save(); Marshal.ReleaseComObject(owWorksheet); Marshal.ReleaseComObject(oWSheets); Marshal.ReleaseComObject(oWBook); Marshal.ReleaseComObject(oWBooks); oXls.Quit(); Marshal.ReleaseComObject(oXls); GC.Collect(); owWorksheet = null; oWSheets = null; oWBook = null; oXls = null;
|