powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про Excel
11 сообщений из 11, страница 1 из 1
Вопрос про Excel
    #37422970
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, в программе обращаюсь к документу excel, после необходимых действий закрываю документ и приложение.

oWorkBook.Close()

loExcel.Quit()

А в диспетчере задач процесс Excel.exe остается висеть. Почему?
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37422991
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oWorkBook.Close()

loExcel.Quit()
RELEASE loExcel
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423051
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RELEASE loExcel
есть в конце.
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423075
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НадеждаМRELEASE loExcel
есть в конце.
Значит это Excel предыдущего сеанса работы, который завершился некорректно - его просто принудительно завершить надо.
Бывает так - запускается Excel, работает программа, затем сбой и все Excel висит в списке задач, т.к. код не дошел до RELEASE.
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423096
НадеждаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAYAKOV_SV,

Видимо оно так и есть.
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423139
Или вы не уничтожили все объекты внутри Excel, явно или неявно порожденные вашей программой.
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423159
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если документ был изменен, то в приведенном синтаксисе при вызове close() возникнет диалог с вопросом сохранить сделанные изменения или закрыть без изменений. Если экземпляр Excel не видимый, то и диалог виден не будет. Как следствие, Excel так и останется висеть в памяти.

Чтобы диалога в подобных случаях не возникало, надо явно указать, что сохранять ничего не надо. Это можно сделать двумя способами

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
* Вариант  1 
oWorkBook.saved = .T.  && признак того, что все изменения были сохранены
oWorkBook.Close()
loExcel.Quit()


* Вариант  2 
oWorkBook.Close(.F.)    && Первый параметр - это указание сохранять или нет сделанные изменения
loExcel.Quit()

Удаление переменной памяти loExcel - это всего-лишь удаление переменной, содержащей ссылку на экземпляр приложения. На факт закрытия приложения Excel вообще никак не влияет. Хотя, для порядка, желательно все-таки ее удалять.

И еще, надеюсь, Вы создаете экземпляр Excel через команду CreateObject(). Поскольку, если Вы создаете экземпляр через команду GetObject(), то Вы можете не создать новый экземпляр, а "подхватить" ранее открытый. И не факт, что у Вас получится закрыть "чужой" экземпляр приложения.
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423207
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
* Вариант  3 
loExcel.DisplayAlerts = .F.
loExcel.Quit()
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423212
Ffffffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FffffffffffffffffffffИли вы не уничтожили все объекты внутри Excel, явно или неявно порожденные вашей программой.

Например:
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37423228
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправляюсь:
MAYAKOV_SVсписке задач, т.к. код не дошел до RELEASE loExcel.Quit.
...
Рейтинг: 0 / 0
Вопрос про Excel
    #37460201
npp2202
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НадеждаМ,

oExcel.quit()
oExcel = .Null.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]