Не закрывает процесс Excel.exe - C#

Узнай цену своей работы

Формулировка задачи:

Нужна помощь! После копирования строк и столбцов из одного файла Excel в другой файл Excel не закрывается процесс Excel.exe.
                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();
              
            }
        }
При этом если открывать и работать с один файлом Excel, то процесс успешно закрывается. В чем дело?
 
                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);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5