У меня открыты три файла Excel (MS Office 16).Мой код проверяет определенный файл, если он открыт, затем он пытается закрыть его, но закрывает процесс Excel, который в конечном итоге закрывает все файлы Excel.
Что я заметил, в диспетчере задач есть только один EXCEL.EXEporcess для всех файлов и на вкладке Details я вижу все мои открытые файлы Excel с именем.
What I Tried is :
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcesses("Excel");
foreach (Process p in processes)
{
if (p.MainWindowTitle == "MyFile.xlsx - Excel")
{
p.Kill();
break;
}
}
и код ниже ничего не делает:
Microsoft.Office.Interop.Excel.Application xlApp = new icrosoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(path);
//xlWorkbook.Close(false);
xlWorkbook.Close(true, Type.Missing, Type.Missing);
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
xlWorkbook = null;
xlApp = null;
GC.Collect();