удаление Excel.exe процесса на сервере

Тема в разделе 'ASP', создана пользователем lirik_ks86, 7 окт 2011.

  1. lirik_ks86 Новичок

    Добрый день коллеги!
    При загрузке данных на сервер из Excel столкнулся со следующей проблемой. Пользователь выбирает файл *.xls,
    после чего он загружается на сервер и считывается с помощью объекта
    PHP:
    Microsoft.Office.Interop.Excel (примерный код):
    objExcel = new Excel.Application();
    Excel.Workbook objWorkBook objExcel.Workbooks.Open(strNewPath,
    Type.MissingType.MissingType.MissingType.Missing,
    Type.MissingType.MissingType.MissingType.Missing,
    Type.MissingType.MissingType.MissingType.Missing,
    Type.MissingType.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,которым он занят.

    Буду благодарен за любые идеи и решения этой проблемы. За раннее благодарю за помощь.
  2. XmP ADD ebx, 110h

    Попробуй:
    PHP:

    objExcel 
    null;
    О данной проблеме говорили многие, она была решена в Excel Server. Так же можно попробовать просто завершить процесс.

    Одно из решений на VB найдено здесь: ***Для просмотра ссылок необходимо войти или зарегистрироваться***

Поделиться этой страницей