![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
abra |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 68 Регистрация: 12.1.2009 Пользователь №: 485 Спасибо сказали: 11 раз(а) Репутация: ![]() ![]() ![]() |
Привет.
Здесь столкнулся с такой заботой. QAxObject *range = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(QString("A1:B6"))); (выделяем диапозон для работы) QAxObject *range = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(QString("A1"))) (выделяем 1 ячейку) QAxObject *range = StatSheet->querySubObject( "Cells(const QVariant&)",QVariant(QString("1"))) ( выделяем 1 ячейку(аналог Cells(1,1)) QAxObject *range = StatSheet->querySubObject( "Cells(const QVariant&)",QVariant(QString("2"))) (выделяем вторую ячейку (аналог Cells(1,2)) Но у меня есть таблица БД.В ней поля.СЛедовательно,должна соблюдаться структура при выводе данных в Эксель 1 поле 2 поле 3 поле 4 поле 5 поле Но!Как мне обратиться скажем к Cells(2,2)...или Cells(3,4)...Причем это обязательно нужно сделать через цифры (Cells(X,Y) (X,Y- целочисленные указатели на ячейки)) Потому что через A1 нельзя вызывать(в таком случае будет слишком мудрено вызываться ячейка B1) ________________________________________________________________________________ ____________________________________________ Хм...Ребят,подождите...Сейчас одна идейка возникла...Может написать QAxObject *range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(QString("2")),QVariant(QString("1"))) попробовать......... ________________________________________________________________________________ ______________________________________________ Не помогло........ QAxObject *range = StatSheet->querySubObject( "Cells(const QVariant&;const QVariant&)",QVariant(QString("4")),QVariant(QString("8"))); Пишет значение в ячейку D1(принял первый параметр равный 4) ![]() Он почему то принимает только первый параметр,и всё......... Какие будут предложения? Сообщение отредактировал abra - 24.3.2009, 19:46 |
|
|
![]() |
Professor |
![]()
Сообщение
#31
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 16.4.2008 Пользователь №: 151 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Получение количества таблиц(sheet):
Получение количества использованных строк/столбцов:
Причина редактирования: пользуйся форматированием кода (code)
|
|
|
Chesterfilda |
![]()
Сообщение
#32
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 29.10.2009 Пользователь №: 1187 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго время суток!!!Очень полезная тема...
А не подскажете,как вот такой код на VBA:
можно переписать на Qt |
|
|
Professor |
![]()
Сообщение
#33
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 16.4.2008 Пользователь №: 151 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Chesterfilda попробуйте добраться до объекта QueryTable и выполнить generateDocumantation().
Новые находки - доступ к символам внутри ячейки:
|
|
|
Chesterfilda |
![]()
Сообщение
#34
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 29.10.2009 Пользователь №: 1187 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Чуть-чуть разобралась...
Только вот небольшая проблемка... Есть такая функция:
,которая как раз-таки и создает QueryTable... только не получается задать второй параметр этой функции,который указывает ячейку с которой начинается вставка данных. В этом случае должна помочь
Точнее никак не получается написть это на QT
|
|
|
Chesterfilda |
![]()
Сообщение
#35
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 29.10.2009 Пользователь №: 1187 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Нашла где-то на сайте:
Цитата Если методу нужно передать аргумент типа IDispatch * или IUnknown *, то можно сначала инкапсулировать его в объект QAxObject, а затем вызвать метод asVariant(), чтобы преобразовать его в тип QVariant Но это не помогает :-(...Если пишу:
то выдает след ошибку: QAxBase: Error calling IDispatch member Add: Exception thrown by server Как же обратится к этой ячейке?? |
|
|
Professor |
![]()
Сообщение
#36
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 16.4.2008 Пользователь №: 151 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Chesterfilda а может вместо:
QAxObject *range=statSheet->querySubObject("Range(QVariant &)",QVariant(QString("A4"))); попробовать: QAxObject *range=statSheet->querySubObject("Range(QVariant &)",QVariant(QString("A4:C8"))); Я не проверят но может сработает. |
|
|
dim_san |
![]()
Сообщение
#37
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.11.2009 Пользователь №: 1228 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Создаю документ ворда таким образом:
QAxWidget *activeX = new QAxWidget( ); activeX->setControl( "Word.Document" ); ui->verticalLayout->insertWidget(0, activeX ); при этом размещаю его в лайауте. Показывается документ как и надо (встроенный в мой виджет). Можно ли каким-то образом достать вордовский тулбар и разместить его куда надо мне, например на основной тулбар моего приложения? Или придется делать собственный? |
|
|
arial |
![]()
Сообщение
#38
|
![]() Студент ![]() Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
dim_san |
![]()
Сообщение
#39
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.11.2009 Пользователь №: 1228 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
arial, неа.
Такое впечатление, что он пытается сам появиться, панелька пустая появляется и тут же исчезает. Но теоретически это должно быть можно сделать, т.к. видел работающий пример на mfc вроде... Кстати, меню вордовское формируется прямо в главном qt-шном окне, но оно не действует... |
|
|
Rosster |
![]()
Сообщение
#40
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 23.11.2009 Пользователь №: 1254 Спасибо сказали: 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" ); а как узнать какие листы вообще в документе есть? Ибо возможности узнать название листа и вписать в прогу нету возможности (много разных документов имеются) Спасибо |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.5.2025, 0:59 |