Завершение процесса Excel после обработки файла - C#

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

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

Доброго времени суток, Подскажите пожалуйста, как завершить процесс Excel после использования? Вот что я делаю:
            Excel.Application myExcelApp;
            Excel.Workbooks myExcelWorkbooks;
            Excel.Workbook myExcelWorkbook;
 
            myExcelApp = new Excel.Application();
            myExcelWorkbooks = myExcelApp.Workbooks;
            object misValue = System.Reflection.Missing.Value;
            myExcelWorkbook = myExcelWorkbooks.Open(path, misValue, misValue,
                misValue, misValue, misValue, misValue, misValue, misValue, misValue,
                misValue, misValue, misValue, misValue, misValue);
            Excel.Worksheet currentExcelWorksheet = (Excel.Worksheet)myExcelWorkbook.Sheets[1];
 
           //Here is some actions........
 
            myExcelWorkbook.Close();
            myExcelWorkbooks.Close();
            myExcelApp = null;
Проблема в том, что эксель остается висеть в процессах после отработки этого кода, и при каждом запуске приложения - запускается новый процесс и остается висеть. Как правильно убивать его?

Решение задачи: «Завершение процесса Excel после обработки файла»

textual
Листинг программы
                GC.Collect();
                GC.WaitForPendingFinalizers();
                if (range != null) Marshal.FinalReleaseComObject(range);
                if (sheet != null) Marshal.FinalReleaseComObject(sheet);
                if (book != null)
                {
                    book.Close(false, Type.Missing, Type.Missing);
                    Marshal.FinalReleaseComObject(book);
                }
                app.Quit();
                Marshal.FinalReleaseComObject(app);

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


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

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

14   голосов , оценка 4.214 из 5
Похожие ответы