Как закрыть процесс Excel? - C#
Формулировка задачи:
Добрый день.
Не могу решить следующую проблему:
Создаю экземпляр Excel, открываю файл, закрываю его. В результате в task manager все равно остается висеть процесс Excel.exe. Он пропадает только после полного закрытия приложения.
Вот код:
Подскажите пожалуйста как закрыть так, чтобы из процессов также убралось?
Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application(); excelapp.Workbooks.Open(System.Windows.Forms.Application.StartupPath + "\\Шаблон1.xlsx", Type.Missing, false, Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing) excelapp.Quit();
Решение задачи: «Как закрыть процесс Excel?»
textual
Листинг программы
try {// Присоединение к открытому приложению Excel (если оно открыто). excelApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); foreach (var item in excelApp.Workbooks) { string tstr = (item as Excel.Workbook).Name; if (tstr== NewFileName) //Если открыт документ с таким же именем как и тот, что мы сохраняем, то { (item as Excel.Workbook).Close(false); //закрываем его. } } if (excelApp.Workbooks.Count < 1) //Если открытых книг не осталось, то завершим процесс { ////Подготовка к убийству процесса Excel int tExcelPID = 0; int tHwnd = 0; tHwnd = excelApp.Hwnd; //Получим HWND окна System.Diagnostics.Process tExcelProcess; GetWindowThreadProcessId((IntPtr)tHwnd, out tExcelPID); //По HWND получим PID tExcelProcess = System.Diagnostics.Process.GetProcessById(tExcelPID); //Подключимся к процессу ////Убийство процесса Excel tExcelProcess.Kill(); tExcelProcess = null; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д