![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Ozerman |
|
|||
Unregistered |
Записываю в Excel файл данные без труда:
Variant ExcelApp; ExcelApp = CreateOleObject("Excel.Application"); ExcelApp.OlePropertyGet("Workbooks").OlePropertyGet("Add"); ExcelApp.OlePropertyGet("WorkBooks").OleProcedure("Open", "c:\\File.xls"); ExcelApp.OlePropertyGet("Range", "A1:C2").OlePropertySet("Value", "111"); ExcelApp.OlePropertyGet("Workbooks", 1).OlePropertyGet("Save"); ExcelApp.OlePropertyGet("Workbooks").OlePropertyGet("Close"); ExcelApp.Clear(); Но прочитать эти же данные не могу: Variant ExcelApp; ExcelApp = CreateOleObject("Excel.Application"); ExcelApp.OlePropertyGet("Workbooks").OlePropertyGet("Add"); ExcelApp.OlePropertyGet("WorkBooks").OleProcedure("Open", "c:\\File.xls"); Variant value; //пробовал так ExcelApp.OlePropertyGet("Range", "A1").OlePropertyGet("Cells", 1, 1).OlePropertyGet("Value", value); //и так ExcelApp.OlePropertyGet("Range", "A1").OlePropertyGet("Value", value); //в отладчике value = { ??? } ExcelApp.OlePropertyGet("Workbooks").OlePropertyGet("Close"); ExcelApp.Clear(); Что делать??? |
|||
|
||||
Олег М |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Борландовские объекты, к сожалению не видел. Вообще непонятно нахрена ты автоматизацией пользуешся, а не вызываешь оле-бъекты напрямую. Бейсик что-ли?
Покажи какие типы параметров у OlePropertyGet. ССылка на вариант? |
|||
|
||||
Ozerman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.7.2004 Где: Владивосток Репутация: нет Всего: нет |
Объектов я никаких, кроме описанных выше, не использую. Всё, что мне надо, должно работать и без форм. Типы параметров у OlePropertyGet... Пошутил что-ли??? Там куча всякой лажы, о которой однозначно ничего не скажешь. Чтобы работать с этой функцией, нужно знать OLE Excel, чем позвастаться не могу.
Может быть, правда, я тебя вообще не понял, за что прошу извинить. А может быть и мой вопрос не понятен. В-общем - не шарю в OLE + Excel + Builder, и помощи не знаю где искать. Если сможешь помочь прочитать кучу данных из Excel таблиц другим способом, буду несоразмерно благодарен!!! |
|||
|
||||
Олег М |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Из хёдера вытащи объявления OlePropertyGet, который с вариантом и покажи - у меня просто здесь нифига нет.
Ты сейчас делаешь с помощью автоматизации ОЛЕ, которая разработана специально для языков типа бейсик. В с++ можно получать указатели на интерфейсы и вызывать методы как у обычных классов. Собственно это и будут обычные классы. Для этого надо импортировать библиотеку типов. Кроме того всё что делаешь в ручную - делается автоматически - создаются классы, методы и т.д. Вручную этого никто не делает. Не знаю как это делается в борланде - поищи, я в вижуале не помню - там, то ли pragma import или что-то ещё. Короче в сишный файл подцепляешь dll или tlb и всё |
||||
|
|||||
Ozerman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.7.2004 Где: Владивосток Репутация: нет Всего: нет |
Variant OlePropertyGet(const String& name, TAutoArgsBase* args = 0);
template <class P1> Variant OlePropertyGet(const String& name, P1 p1); template <class P1, class P2> Variant OlePropertyGet(const String& name, P1 p1, P2 p2); template <class P1, class P2, class P3> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3); template <class P1, class P2, class P3, class P4> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4); template <class P1, class P2, class P3, class P4, class P5> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5); template <class P1, class P2, class P3, class P4, class P5, class P6> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6); template <class P1, class P2, class P3, class P4, class P5, class P6, class P7> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7); template <class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8); template <class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9); template <class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9, class P10> Variant OlePropertyGet(const String& name, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8, P9 p9, P10 p10); Нравится??? Вот и мне тожа! Это сообщение отредактировал(а) Ozerman - 6.7.2004, 16:25 |
|||
|
||||
Олег М |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
И что непонятного?
Здесь скорее всего передаётся не сыылка на вариант, а копия, которая при возврате из функции удаляется. Сделай
всё скорее всего заработает |
||||
|
|||||
Олег М |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 10.6.2004 Где: Москва Репутация: 7 Всего: 7 |
Или, на худой конец, так:
Добавлено @ 11:32 Или ваще так
Посмотри в хелпе, в конце концов |
||||
|
|||||
Ozerman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 5.7.2004 Где: Владивосток Репутация: нет Всего: нет |
УРА!!! Свершилось!!!
Variant value; value = ExcelApp.OlePropertyGet("Range", "A1").OlePropertyGet("Cells", 1, 1).OlePropertyGet("Value");//считывает значение из ячейки [1, 1] (1-я строка, 1-ый столбец) value = ExcelApp.OlePropertyGet("Range", "A2").OlePropertyGet("Cells", 1, 1).OlePropertyGet("Value");//считывает значение из ячейки [2, 1] value = ExcelApp.OlePropertyGet("Range", "A1").OlePropertyGet("Cells", 1, 2).OlePropertyGet("Value");//считывает значение из ячейки [1, 2] Спасибо за подсказку!!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |