Не закрывает процесс Excel.exe - C#
Формулировка задачи:
Нужна помощь! После копирования строк и столбцов из одного файла Excel в другой файл Excel не закрывается процесс Excel.exe.
При этом если открывать и работать с один файлом Excel, то процесс успешно закрывается. В чем дело?
Excel.Application xlApp;
Excel.Workbook xlWorkBook1;
Excel.Workbook xlWorkBook2;
Excel.Worksheet xlWorkSheet1;
Excel.Worksheet xlWorkSheet2;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook1 = xlApp.Workbooks.Open(str1, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkBook2 = xlApp.Workbooks.Open(str2, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet1 = (Excel.Worksheet)xlWorkBook1.Worksheets.get_Item(1);
xlWorkSheet2 = (Excel.Worksheet)xlWorkBook2.Worksheets.get_Item(1);
....
xlWorkSheet1.Cells[i + 9, 2 + j].Value2 = xlWorkSheet2.Cells[i + 7, 8].Value2;
....
//Закрытие
xlWorkBook1.Save();
xlWorkBook1.Close(true, misValue, misValue);
xlWorkBook2.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet1);
releaseObject(xlWorkBook1);
releaseObject(xlWorkSheet2);
releaseObject(xlWorkBook2);
releaseObject(xlApp);
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
}
finally
{
GC.Collect();
}
}
xlWorkBook.Save();
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);Решение задачи: «Не закрывает процесс Excel.exe»
textual
Листинг программы
Worksheet sheet = excelApp.Worksheets.Open(...); ... Marshal.ReleaseComObject(sheet);