Не закрывает процесс 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д