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

 
C++Builder + Excel, (через библиотеки типов)
pasha
Отправлено: 20.05.2004, 12:01


Дежурный стрелочник

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



Работа с Excel + BCB описана в Уроках, но там нет описания
как работать с Excel используя библиотеку типов.

Когда создаю новый проект и пытаюсь подключить
к нему библиотеку типов (у меня OfficeXP+Win2000)
Project | Import Type Library | Add
нахожу файл C:\Program Files\Microsoft Office\Office10\Excel.exe
в списке появляется библиотека типов:
Microsoft Excel 10.0 Object Library (Version 1.4)
но на "Create Unit" выскакивает окно:

A class named "TExcelQueryTable" is already installed

Я так понимаю, ругается, что уже установлено.
Но где ??? Как найти и подключить ?
Может это из-за стоящих компонентов со вкладки Office2k ?

Кто сталкивался, подскажите, как все-же подключить
библиотеку типов, не хочу через компоненты с вкладки
Office2k, хочу через библиотеку типов сам.

Отредактировано pasha — 20/05/2004, 14:05
Valdemar
Отправлено: 20.05.2004, 12:13


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

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



QUOTE
не хочу через компоненты с вкладки
Office2k, хочу через библиотеку типов сам.

По моему это одно и тоже. И компоненты с закладки Office2k получены путем импорта библиотеки типов.
pasha
Отправлено: 20.05.2004, 14:20


Дежурный стрелочник

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



Разница в том, что я хочу сделать это руками,
с пониманием того что делаю, видя перед собой
библиотеку типов.

И дело не только в Excel.

Может хоть кто-нибудь показать как подключиться,
например к Graph (OfficeXP)
(C:\Program Files\Microsoft Office\Office10\Graph.exe)

Просто подключиться и сделать его видимым — все !!!

Получиться у кого ??? wink.gif Очень сомневаюсь !
(Через библиотеку типов — Project | Import Type Library)

olegenty
Отправлено: 21.05.2004, 14:36


Ветеран

Группа: Модератор
Сообщений: 2412



Так вот, мистер-любитель Excel через библиотеку типов. Твои вариант даёт именно Office2K классы, именно поэтому и возникает ошибка по "ехists"
Если ты при импорте руками изменишь все имена классов, то получишь ТОЧНУЮ КОПИЮ Office2k компонентов для Excel. (Так уверен, потому что делал это сам в молодости, примеры для ADO на BCB 4 (тогда стандартных компонентов для ADO не было) ещё где-то лежат, но уже не отеомпилятся, я думаю)
Admin
Отправлено: 21.05.2004, 16:17


Владимир

Группа: Администратор
Сообщений: 1190



QUOTE

Может хоть кто-нибудь показать как подключиться к Graph (OfficeXP)
(C:\Program Files\Microsoft Office\Office10\Graph.exe)

Просто подключиться и сделать его видимым — все !!!  biggrin.gif

Получиться у кого ???  Очень сомневаюсь !
(Через библиотеку типов — Project | Import Type Library)


Ответа нет. sad.gif
Итак, предлагаю попробовать. biggrin.gif

Кто первый выложит здесь работающее решение на С++Builder,
(как было сказано — через библиотеку типов — Project | Import
Type Library, через дисп-интерфейс или по-другому, но
но не через CreateOleObject() ... OlePropertySet() ...,
получит в подарок книгу:

"Разработка Web-приложений на PHP и MySQL"
Веллинг Л., Томсон Л. c прилагаемым CD-диском

http://programming.taukita.ru/item14436772.html

Если Вы не зарегистрированный участник форума,
не забудьте указать в ответе Ваш email или иную форму
связи (если решение окажется работающим — для связи с Вами
куда отправить книгу).




Присоединить изображение

Присоединить изображение

olegenty
Отправлено: 22.05.2004, 09:55


Ветеран

Группа: Модератор
Сообщений: 2412



Пока не потянул. Импортировал библиотеку и установил как пакет. MS Graph 10. Беда в том, что не знаю мат части, а интерфейсов там импортировалось, как грязи. (А класс всего 1 — TGlobal)
Admin
Отправлено: 22.05.2004, 18:02


Владимир

Группа: Администратор
Сообщений: 1190



Согласен.
Могу предположить, что нужно будет использовать
интерфейсы IApplication, IChart,
работать возможно через disp-интерфейс _IGlobalDisp,
создав объект через Bind() но не уверен.

Excel работает с Graph без проблем, значит как-то можно. smile.gif

Вот интересно — Microsoft так пропогандирует технологию COM,
дескать COM-объекты для того и нужны, но при этом отсутствует
документация на данные COM-объекты, и получается что
без соответствующей документации хваленый COM ничего
не стоит.


Asher
Отправлено: 18.10.2005, 10:33


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

Группа: Модератор
Сообщений: 550



Привет.
Если тема ещё интересна, то вот наткнулся на такой документ
How To Automate Excel From C++ Without Using MFC or #import
По ходу сразу с примером на COM.

Сразу предупреждаю — не пробовал.
Но может кому пригодится.

P.S.
Проверил. wink.gif
Работает. biggrin.gif
Сама дока по работе с объектами MS Excell лежит здесь ...\Office\1049
(хотя вроде бывает и в ...\Office\1033) и называется VBAXL9.CHM

Отредактировано Asher — 18/10/2005, 11:54

Вернуться в Технологии COM/DCOM, ActiveX