Удаление Excel.exe процесса на сервере - C#

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

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

Добрый день коллеги! При загрузке данных на сервер из Excel столкнулся со следующей проблемой. Пользователь выбирает файл *.xls, после чего он загружается на сервер и считывается с помощью объекта Microsoft.Office.Interop.Excel (примерный код):
     objExcel = new Excel.Application();
     Excel.Workbook objWorkBook = objExcel.Workbooks.Open(strNewPath, 
                                             Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                             Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                             Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                             Type.Missing, Type.Missing);
      Excel.Sheets excelsheets = objWorkBook.Worksheets;
      Excel.Worksheet sheet = (Excel.Worksheet)excelsheets.get_Item(1);
      while(true)  {  //считываем файл   }
Далее закрываю объект objExcel и удаляю загруженный файл:
    objExcel.Quit();
    //удаляем файл
    File.Delete(strNewPath);
Все проходит, а процесс, порожденный вызовом objExcel = new Excel.Application() висит в диспетчере задач с именем EXCEL.EXE. При повторной загрузке, создается еще один процесс с именем EXCEL.EXE. Необходимо как-то по имени загруженного на сервер файла .xls удалить процесс EXCEL.EXE,которым он занят. Буду благодарен за любые идеи и решения этой проблемы. За раннее благодарю за помощь!!!!

Решение задачи: «Удаление Excel.exe процесса на сервере»

textual
Листинг программы
foreach (Process _p in Process.GetProcesses())
{
   if (_p.ProcessName == "EXCEL")
      _p.Kill();
}

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


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

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

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