C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Запуск Excel, Не запускается!?
** Алексей
Отправлено: 20.03.2006, 19:02


Не зарегистрирован









Здравствуйте.
Помогите справиться.

В программе надо открыть EXCEL:

Variant App,Sh;
String file_n="c:\\12.xls";
try {
App=Variant::GetActiveObject("Excel.Application");
} catch(...) {
// запустить Excel
try { App=Variant::CreateObject("Excel.Application"); } catch (...) {
Application->MessageBox("Невозможно открыть Excel!"
"Excel не установлен","Ошибка",MB_OK+MB_ICONERROR);
} }
try {
if(file_n!="")
App.OlePropertyGet("WorkBooks").OleProcedure("Open",file_n);
else
App.OlePropertyGet("WorkBooks").OleProcedure("add");
Sh=App.OlePropertyGet("WorkSheets",1);
} catch(...) {
Application->MessageBox("Не открывается книга Microsoft Excel!",
"Ошибка",MB_OK+MB_ICONERROR);
}

.....................
Sh.Clear();
App.Clear();



Выдается ошибка:
Project xxx.exe raised exception class EOleSysError with message
"Неверный тип переменной"

Похоже на строке:

App.OlePropertyGet("WorkBooks").OleProcedure("Open",file_n);

Сам EXCEL загружается (видно по Ctr-Alt-Del)


Что неправильно?
Aptem
Отправлено: 21.03.2006, 05:28


Мастер участка

Группа: Участник
Сообщений: 349



Вот так точно работает:
CODE

Variant App, Sheet;
App = CreateOleObject ( "Excel.Application" );
App.OlePropertyGet ( "WorkBooks" ).OleProcedure ( "Open", Edit1 -> Text.c_str () );
Sheet = App.OlePropertyGet ( "WorkSheets", 1 );

и помоему еще нужно подключить какую-то из этих бибилиотек:
CODE
#include <OleServer.hpp>
#include <OleCtrls.hpp>

Если что-то не заработает, то пишите, обязательно разберемся. Я с Excel уже собаку съел smile.gif
** Алексей
Отправлено: 22.03.2006, 19:22


Не зарегистрирован







Aptem! Спасибо. Так работает.
smile.gif

Вернуться в Вопросы программирования в C++Builder