Russian Qt Forum
Май 16, 2024, 11:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обьединение ячеек в Excel  (Прочитано 8044 раз)
maks
Гость
« : Март 25, 2009, 19:24 »

Добрый день. Надо объединиеть несколько ячее в Excel известны цифровые координаты первой ячейки и последней Например (5,5) (10,10)
 пробовал вот так
Код:
ExcelCell=ExcelCells->querySubObject("Range(Cells(int,int),Cells(int,int))",5,5,10,10);
ExcelCell->dynamicCall("Merge");

Но код выдает стреляется. Так как первая строка возвращает NULL.
Как правильно обьединить ячейки?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Март 25, 2009, 19:37 »

Ваш вопрос относится к Qt?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
maks
Гость
« Ответ #2 : Март 25, 2009, 20:51 »

Доступ к Excel осуществляется через ActiveQT.
Записан
silart
Гость
« Ответ #3 : Март 26, 2009, 14:02 »

Доступ к Excel осуществляется через ActiveQT.

Думаю сначала нужно попробовать все сделать на Visual Basic, а когда будет там работать, перенести в Qt.
Записан
maks
Гость
« Ответ #4 : Март 26, 2009, 16:01 »

Вот код на VBA
Код:
Range(Cells(1, 1), Cells(10, 10)).Select
Selection.Merge
Как его переделать на C++ и ActiveQT?
Записан
silart
Гость
« Ответ #5 : Март 27, 2009, 04:23 »

Вот код на VBA
Код:
Range(Cells(1, 1), Cells(10, 10)).Select
Selection.Merge
Как его переделать на C++ и ActiveQT?

Сначала нужно сгенерировать документацию для Qt по библиотеке типа. Для этого есть утилита dumpcpp.exe и функция QAxBase::generateDocumentation(), которую эта утилита вызывает.
Я пользуюсь функцией. Она возвращает строку с документацией html, которую потом сохраняешь в файл.
Причем эту функцию нужно вызывать для каждого COM-объекта с которым работаешь. В документации будет написан пример использования для каждой функции из библиотеки типа. Ну например что-то вроде:
Код:
object.dynamicCall("Range(IDispatch*, IDispatch*)", P1, P2);

Потом подставляешь свои параметры и все должно работать.
Записан
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #6 : Август 26, 2010, 11:03 »

Код:
// получаю указатель
QAxObject *rangec = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(QString("D2:D5")));
// выбираю их
rangec->dynamicCall("Select()");
// устанавливаю свойство объединения.
rangec->dynamicCall("MergeCells",TRUE);

Вот суда http://www.forum.crossplatform.ru/index.php?showtopic=2450 зайди.
« Последнее редактирование: Август 26, 2010, 11:18 от kolob » Записан

Qt 5.11.0, Win, MinGW
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.098 секунд. Запросов: 22.