Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

TExcelApplication

2.1K
13 декабря 2002 года
Andrevv
9 / / 13.12.2002
Добрый вечер. Возник вопрос при работе на СВ5 с TExcelApplication. Как сделать в консольной программке, чтобы Ексель (в программе объект создается динамически) после закрытия программы не закрывался. Если я не освобождаю память из-под объекта Ексель не закрывается, но впоследствии при обычном закрытии ругается на недопустимую операцию. Подскажите кто-нибудь, как правильно все сделать. Заранее спасибо.
2.0K
13 декабря 2002 года
Skolotovich
39 / / 13.12.2002
Цитата:
Originally posted by Andrevv
Добрый вечер. Возник вопрос при работе на СВ5 с TExcelApplication. Как сделать в консольной программке, чтобы Ексель (в программе объект создается динамически) после закрытия программы не закрывался. Если я не освобождаю память из-под объекта Ексель не закрывается, но впоследствии при обычном закрытии ругается на недопустимую операцию. Подскажите кто-нибудь, как правильно все сделать. Заранее спасибо.



на код посмотреть можно
так со слов трудно что либо сказать

я это делал так :

ExcelWorksheet->Disconnect();
ExcelWorkbook->Disconnect();
ExcelApplication->Disconnect();

а если закрывать -- тогда так:

ExcelWorkbook->Close(True);
ExcelWorksheet->Disconnect();
ExcelWorkbook->Disconnect();
ExcelApplication->Quit();
ExcelApplication->Disconnect();

2.1K
13 декабря 2002 года
Andrevv
9 / / 13.12.2002
Цитата:
Originally posted by Skolotovich


на код посмотреть можно
так со слов трудно что либо сказать

я это делал так :

ExcelWorksheet->Disconnect();
ExcelWorkbook->Disconnect();
ExcelApplication->Disconnect();

а если закрывать -- тогда так:

ExcelWorkbook->Close(True);
ExcelWorksheet->Disconnect();
ExcelWorkbook->Disconnect();
ExcelApplication->Quit();
ExcelApplication->Disconnect();



код простой:
TExcelApplication* ExcelApplication=new TExcelApplication(NULL);

ExcelApplication->ConnectKind=ckNewInstance;
ExcelApplication->Connect();
_WorkbookPtr book=ExcelApplication->Workbooks->Open(fname);
...
book->Save();
delete ExcelApplication;

в этом случае Ексель остается, но при закрытии ругается. Если сделать дисконнект, а после delete открыть этот файл через execl, все будет нормально (программа закончилась, Ексель работает, файл открыт), но в списке задач после закрытия будет болтаться какой-то Excel. Если делать не execl, а ShellExecute, то тоже будут заморочки.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог