** Алексей |
Отправлено: 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 уже собаку съел
|
|
** Алексей |
Отправлено: 22.03.2006, 19:22 |
|
Не зарегистрирован
|
Aptem! Спасибо. Так работает.
|
|
|