Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запуск Excel из Builder / 7 сообщений из 7, страница 1 из 1
18.11.2007, 14:16:25
    #34947365
AndrewP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
Запускаю из программы на C++ (Builder) Excel c формированной книгой:

Код: plaintext
1.
2.
AnsiString asRepFileName="C:\\DOCS\\Document.xls";
AnsiString PathDoc="C:\\DOCS\\";
ShellExecute( 0 ,"open",asRepFileName.c_str(), 0 ,PathDoc.c_str(),SW_SHOW);

Excel запускается и показывает книгу, но при этом одновременно открывается еще одна пустая книга из 3- листов. Как избежать открытия пустой книги?

P.S. Если открываю книгу из командной строки (не из программы),
авторExcel "C:\DOCS\Document.xls"
то открывается только одна книга (без пустых листов).
...
Рейтинг: 0 / 0
18.11.2007, 17:28:54
    #34947486
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
Странно, у меня открывается только указанная книга... версия экселя какая и/или ОС?
могу ещё посоветовать вот так сделать:
Код: plaintext
1.
2.
3.
4.
    AnsiString asRepFileName("C:\\DOCS\\Document.xls");
    AnsiString PathDoc("C:\\DOCS\\");
    AnsiString exe("Excel");
    ShellExecute( 0 ,"open",exe.c_str(),asRepFileName.c_str(),PathDoc.c_str(),
        SW_SHOW);
т.е. явно сказать, что надо эксель вызывать
...
Рейтинг: 0 / 0
18.11.2007, 18:53:47
    #34947527
AndrewP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
Спасибо, egorych, разобрался!

Дело в том, что файл "C:\\DOCS\\Document.xls" я формирую из CBuilder программы через:
Код: plaintext
App=Variant::CreateObject("Excel.Application");

При вызове готового отчета через ShellExecute, я не закрыл объект App

Код: plaintext
App.OleProcedure("Quit");
...
Рейтинг: 0 / 0
18.11.2007, 20:08:24
    #34947591
Leshij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
On Sun, 18 Nov 2007 18:53:47 +0300, AndrewP_ <nospam@sql.ru>; wrote:

> App=Variant::CreateObject("Excel.Application");
> При вызове готового отчета через ShellExecute, я не закрыл объект App
>
> App.OleProcedure("Quit");

Можно было просто показать запущеный Эксель, что-то типа
App.Visible = TRUE;
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18.11.2007, 20:40:36
    #34947610
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
ну типа лучше так :
Код: plaintext
App.OlePropertySet("Visible",true);
...
Рейтинг: 0 / 0
19.11.2007, 10:42:22
    #34948099
AndrewP_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
Это я знаю, но логика программы требует открытия сформированной книги отдельно от объекта App.
...
Рейтинг: 0 / 0
19.11.2007, 11:02:43
    #34948159
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск Excel из Builder
AndrewP_Это я знаю, но логика программы требует открытия сформированной книги отдельно от объекта App.дело хозяйское
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запуск Excel из Builder / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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