Как закрыть процесс 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;
}
}