Cells в QT при работе с MS Office |
Здравствуйте, гость ( Вход | Регистрация )
Cells в QT при работе с MS Office |
Professor |
28.10.2009, 13:35
Сообщение
#31
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 16.4.2008 Пользователь №: 151 Спасибо сказали: 0 раз(а) Репутация: 0 |
Получение количества таблиц(sheet):
Получение количества использованных строк/столбцов:
Причина редактирования: пользуйся форматированием кода (code)
|
|
|
Chesterfilda |
29.10.2009, 10:36
Сообщение
#32
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 29.10.2009 Пользователь №: 1187 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго время суток!!!Очень полезная тема...
А не подскажете,как вот такой код на VBA:
можно переписать на Qt |
|
|
Professor |
29.10.2009, 13:46
Сообщение
#33
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 16.4.2008 Пользователь №: 151 Спасибо сказали: 0 раз(а) Репутация: 0 |
Chesterfilda попробуйте добраться до объекта QueryTable и выполнить generateDocumantation().
Новые находки - доступ к символам внутри ячейки:
|
|
|
Chesterfilda |
30.10.2009, 15:36
Сообщение
#34
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 29.10.2009 Пользователь №: 1187 Спасибо сказали: 0 раз(а) Репутация: 0 |
Чуть-чуть разобралась...
Только вот небольшая проблемка... Есть такая функция:
,которая как раз-таки и создает QueryTable... только не получается задать второй параметр этой функции,который указывает ячейку с которой начинается вставка данных. В этом случае должна помочь
Точнее никак не получается написть это на QT
|
|
|
Chesterfilda |
3.11.2009, 10:02
Сообщение
#35
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 29.10.2009 Пользователь №: 1187 Спасибо сказали: 0 раз(а) Репутация: 0 |
Нашла где-то на сайте:
Цитата Если методу нужно передать аргумент типа IDispatch * или IUnknown *, то можно сначала инкапсулировать его в объект QAxObject, а затем вызвать метод asVariant(), чтобы преобразовать его в тип QVariant Но это не помогает :-(...Если пишу:
то выдает след ошибку: QAxBase: Error calling IDispatch member Add: Exception thrown by server Как же обратится к этой ячейке?? |
|
|
Professor |
4.11.2009, 19:45
Сообщение
#36
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 16.4.2008 Пользователь №: 151 Спасибо сказали: 0 раз(а) Репутация: 0 |
Chesterfilda а может вместо:
QAxObject *range=statSheet->querySubObject("Range(QVariant &)",QVariant(QString("A4"))); попробовать: QAxObject *range=statSheet->querySubObject("Range(QVariant &)",QVariant(QString("A4:C8"))); Я не проверят но может сработает. |
|
|
dim_san |
13.11.2009, 14:09
Сообщение
#37
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.11.2009 Пользователь №: 1228 Спасибо сказали: 0 раз(а) Репутация: 0 |
Создаю документ ворда таким образом:
QAxWidget *activeX = new QAxWidget( ); activeX->setControl( "Word.Document" ); ui->verticalLayout->insertWidget(0, activeX ); при этом размещаю его в лайауте. Показывается документ как и надо (встроенный в мой виджет). Можно ли каким-то образом достать вордовский тулбар и разместить его куда надо мне, например на основной тулбар моего приложения? Или придется делать собственный? |
|
|
arial |
20.11.2009, 9:27
Сообщение
#38
|
Студент Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: 0 |
|
|
|
dim_san |
23.11.2009, 15:27
Сообщение
#39
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.11.2009 Пользователь №: 1228 Спасибо сказали: 0 раз(а) Репутация: 0 |
arial, неа.
Такое впечатление, что он пытается сам появиться, панелька пустая появляется и тут же исчезает. Но теоретически это должно быть можно сделать, т.к. видел работающий пример на mfc вроде... Кстати, меню вордовское формируется прямо в главном qt-шном окне, но оно не действует... |
|
|
Rosster |
23.11.2009, 20:51
Сообщение
#40
|
Студент Группа: Участник Сообщений: 33 Регистрация: 23.11.2009 Пользователь №: 1254 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет. А откуда вы берете все эти команды?
Open(const QString&) Item(const QVariant&) QAxObject *rangep = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(3),QVariant(1)); rangec->dynamicCall("Copy()"); и так далее? и еще: получаем указатель на листы: QAxObject *mSheets = workbook->querySubObject( "Sheets" ); а как узнать какие листы вообще в документе есть? Ибо возможности узнать название листа и вписать в прогу нету возможности (много разных документов имеются) Спасибо |
|
|
Текстовая версия | Сейчас: 23.11.2024, 8:23 |