Cells в QT при работе с MS Office |
Здравствуйте, гость ( Вход | Регистрация )
Cells в QT при работе с MS Office |
abra |
24.3.2009, 19:27
Сообщение
#1
|
Студент Группа: Участник Сообщений: 68 Регистрация: 12.1.2009 Пользователь №: 485 Спасибо сказали: 11 раз(а) Репутация: 2 |
Привет.
Здесь столкнулся с такой заботой. 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 |
|
|
Rocky |
2.6.2009, 21:59
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Вспомнил что когда-то давно что-то писал на VBA. Вобщем, общая идея работы с ActiveQT - эта библиотека позволяет работать с любыми библиотеками/приложениями, поддерживающими COM. Список методов и свойств объектов можно посмотреть в tlb-хе соответствующего приложения (например, через OLEView). Если етсь *.tlh или idl-ник - можно и там напрямую через текстовые редакторы. В случае с Excel идеально помогает VBA. Запускаем Excel, жмем Alt+F11, пишем процедуру открытия книги например и там эксперементируем. По "F2" можно посмотреть список классов их методов и свойств. Выбираем метод - давим "F1", читаем как им пользоваться. Далее читаем документацию по функциям ActiveQt - querySubObject/dynamicCall/setProperty/property.
1. Как вставить картинку в ячейку? На VBA будет так:
Пробовал переписать так:
не фурычит. pShape2 == NULL и картинка не грузица. В querySubObject если нужно вызывать функцию, нужно описать сигнатуру этой функции.. А сигнатура такая:
Я много как пробовал: не хотит пока. Че писать пока не понял (особенно насчет MsoTriState).... 2. Как создать новый workbook и в нем sheet с заданным именем? Создаем новую книгу (при этом совершенно необязательно что-то там открывать с диска)
Удалить листы можно так:
Новый лист создать можно так:
3. Как изменить формат представления данных в ячейке? (например, я ввожу число "5.2" - а отображается "5 февраля") На VBA так:
На ActiveQT чет не особо работает. Поэтому решил проблему так:
4. Как изменить параметры страницы? (например, сделать лист альбомной ориентации, чтобы после вывода данных в excel пользователю в случае печати не нужно было ничего настраивать). Вот так можно задать границы области печати (и задать ориентацию (собсно ка ViGOur писал выше)):
Сообщение отредактировал Rocky - 2.6.2009, 22:54 |
|
|
Текстовая версия | Сейчас: 22.11.2024, 19:07 |