crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> 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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Гость_gp_*
сообщение 9.11.2013, 14:23
Сообщение #2





Гости








    


Что-то никак не могу извлечь значение ячейки... Выводит пустую строку, вместо необходимой информации. Уж умаялся искать, где загвоздка. Подскажите, пожалуйста.

Вот мой исходный код:
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <ActiveQt/qaxobject.h>
#include <ActiveQt/qaxbase.h>

#include <QMessageBox>
#include <QDebug>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // получаем указатель на Excel
    mExcel = new QAxObject( "Excel.Application",this);
    mExcel->dynamicCall( "SetVisible(bool)", TRUE );
    // на книги
    workbooks = mExcel->querySubObject( "Workbooks" );
    // на директорию, откуда грузить книгу
    workbook = workbooks->querySubObject(
                "Open(const QString&)", "D:\\Guest\\collection.xls" );
    // на листы (снизу вкладки)
    mSheets = workbook->querySubObject( "Sheets" );
    // указываем, какой лист выбрать.
    sheet = mSheets->querySubObject( "Item(int)" ,2); //( "Item(const QVariant&)", QVariant("Common") );
    //gp
    sheet->dynamicCall( "Select" );

    qDebug()<<sheet->property("Name").toString();
}

MainWindow::~MainWindow()
{
    delete ui;

    delete sheet;
    delete mSheets;
    workbook->dynamicCall("Close()");
    delete workbook;
    delete workbooks;
    mExcel->dynamicCall("Quit()");
    delete mExcel;
}


QString MainWindow::getCellValue(int row, int col)
{
    // получение указателя на ячейку [row][col] ((!)нумерация с единицы)
    QAxObject* cell = sheet->querySubObject("Cells(const QVariant&,const QVariant&)",
                                            QVariant(row), QVariant(col));
    // получение содержимого
    QVariant result = cell->property("Value()");
    qDebug()<<"row=="<<row<<" col=="<<col<<" result=="<<result.toString();
    // освобождение памяти
    delete cell;

    return result.toString();
}

void MainWindow::on_pushButton_clicked()
{
    QMessageBox::information(this,"Считанное значение",
                             getCellValue(ui->spinBoxRow->value(), ui->spinBoxCol->value()));
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
avanGARd
  опции профиля:
сообщение 9.11.2013, 18:03
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 9.11.2013
Пользователь №: 3969

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(gp @ 9.11.2013, 15:23) *
Что-то никак не могу извлечь значение ячейки... Выводит пустую строку, вместо необходимой информации. Уж умаялся искать, где загвоздка. Подскажите, пожалуйста.


Это я под гостём писал. Выяснил случайно, что дело было в версии Qt. Собирал поначалу под 4.7.1, а вот здесь написано, что и под 4.7.0 при попытке считать или записать значения в ячейку таблицы Excel ничего не получается.
Я сразу же попробовал собрать под Qt 4.7.4, как было рекомендовано на том форуме. И всё сразу же заработало. Так вот ведь, в чём загвоздка была!!! Почти пол-дня потратил на выяснение причины, наткнулся на решение чисто случайно :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- abra   Cells в QT при работе с MS Office   24.3.2009, 19:27
- - abra   Проблема решена))) Может кому понадобится QAxObj...   24.3.2009, 21:34
- - Rocky   abra, а можно вопросик? А как вообще начинать рабо...   25.3.2009, 20:21
- - ViGOur   abra, если не лень, то может и правда опишешь? А т...   25.3.2009, 20:54
|- - Наставник   Цитата(ViGOur @ 25.3.2009, 20:54) abra, е...   3.5.2009, 19:53
- - abra   Оу.Извините)))) Чот как то решил для себя проблему...   1.4.2009, 0:17
- - abra   Статью я постоянно редактирую(дополняю),по мере то...   1.4.2009, 18:42
- - Litkevich Yuriy   супер!   1.4.2009, 18:54
- - abra   Спасибо.   1.4.2009, 19:37
- - ViGOur   abra, бросил твою статью в Faq нашей вики: Работе ...   1.4.2009, 20:11
- - abra   Хорошо.Только у меня просьба.Подправь пожалуйста з...   1.4.2009, 21:27
- - Litkevich Yuriy   abra, ты можешь сделать это сам. В верху страницы ...   2.4.2009, 7:31
|- - abra   Цитата(Litkevich Yuriy @ 2.4.2009, 7:31) ...   2.4.2009, 8:46
- - ViGOur   Поправил...   2.4.2009, 8:11
- - Litkevich Yuriy   Цитата(abra @ 2.4.2009, 12:46) Кстати,а в...   2.4.2009, 8:49
- - abra   Дополнение к статье: Значения Выравнивание по ве...   2.4.2009, 20:48
- - igor_bogomolov   Цитата(Гость_Наставник_* @ 3.5.2009, 20:5...   3.5.2009, 20:21
- - Гость_abra   Вот и ответ получен=))))   4.5.2009, 13:26
- - Tonal   Включение исходников ещё не значит что они халявны...   5.5.2009, 7:20
- - Rocky   Всем привет! Начал потихоньку разбираться с ac...   29.5.2009, 20:07
- - ViGOur   Цитата(Rocky @ 29.5.2009, 21:07) 4. Как и...   29.5.2009, 21:12
- - Rocky   Хе-хе )) работает ))   29.5.2009, 21:54
- - Rocky   Вспомнил что когда-то давно что-то писал на VBA. В...   2.6.2009, 21:59
- - Litkevich Yuriy   Цитата(Rocky @ 3.6.2009, 1:59) "I:...   2.6.2009, 22:21
- - croc   А как получать массив значений определенного range...   10.9.2009, 9:22
- - ViGOur   Добавил в вики. croc, в случае чего, каждый участн...   10.9.2009, 14:23
- - admsasha   А как в открытом документе сделать "поиск и з...   5.10.2009, 6:07
- - arial   Цитата(abra @ 1.4.2009, 0:17) Вот еще нак...   16.10.2009, 7:46
- - admsasha   Открытие и печать документа QAxObject * word = n...   24.10.2009, 16:35
- - ViGOur   Добавил в вики   24.10.2009, 18:23
- - Professor   Получение количества таблиц(sheet): int sheet_coun...   28.10.2009, 13:35
- - Chesterfilda   Доброго время суток!!!Очень полезная т...   29.10.2009, 10:36
- - Professor   Chesterfilda попробуйте добраться до объекта Query...   29.10.2009, 13:46
- - Chesterfilda   Чуть-чуть разобралась... Только вот небольшая проб...   30.10.2009, 15:36
- - Chesterfilda   Нашла где-то на сайте: ЦитатаЕсли методу нужно пер...   3.11.2009, 10:02
- - Professor   Chesterfilda а может вместо: QAxObject *range=stat...   4.11.2009, 19:45
- - dim_san   Создаю документ ворда таким образом: QAxWidge...   13.11.2009, 14:09
|- - arial   Цитата(dim_san @ 13.11.2009, 14:09) Можно...   20.11.2009, 9:27
- - dim_san   arial, неа. Такое впечатление, что он пытается сам...   23.11.2009, 15:27
- - Rosster   Всем привет. А откуда вы берете все эти команды? O...   23.11.2009, 20:51
- - ViGOur   В microsoft Excel и Word есть замечательная вешь к...   23.11.2009, 21:02
- - Rosster   Цитата(ViGOur @ 23.11.2009, 21:02) В micr...   24.11.2009, 21:57
- - ViGOur   ЦитатаУзнать количество листов в книге можно в цик...   24.11.2009, 23:19
- - Гость_dim_san_*   Цитата(Rosster @ 23.11.2009, 20:51) Всем ...   26.11.2009, 13:17
|- - MJIbIu   QString fileName = QFileDialog::getOpenFil...   4.10.2010, 13:08
|- - MJIbIu   Цитата(MJIbIu @ 4.10.2010, 14:08) все бы ...   5.10.2010, 8:59
- - breeve   Может кто подсказать, а если у меня в документе Wo...   16.2.2011, 20:04
- - breeve   Разобрался как доставать текст из таблицы. Но толь...   20.2.2011, 13:13
- - Rocky       for(int j = 1; j < cols+1; j++)   ...   20.2.2011, 14:57
|- - breeve   Цитата(Rocky @ 20.2.2011, 14:57) А если п...   20.2.2011, 19:21
- - Rocky   Ясно. Цитата(breeve @ 20.2.2011, 13:13) ...   20.2.2011, 20:46
- - AlexeyDonald   Народ подскажите, цель поменять имя листа в докуме...   22.2.2011, 1:56
- - pavelqt   Уже который день мучаюсь, не получается, подскажит...   7.9.2011, 8:33
- - Litkevich Yuriy   Цитата(pavelqt @ 7.9.2011, 11:33) И второ...   9.9.2011, 16:25
- - Alisher   Подскажите пожалуйста, как в цикле вывести все зна...   22.9.2011, 11:29
- - Данил   Мне кажется, что тему нужно назвать работа с Excel...   20.12.2011, 13:45
|- - Maclaren   Цитата(Данил @ 20.12.2011, 13:45) Мне каж...   21.4.2012, 1:44
|- - romeodka   Я открыл документ word, изменил нужные мне данные....   9.8.2012, 8:34
- - gp   Что-то никак не могу извлечь значение ячейки... Вы...   9.11.2013, 14:23
|- - avanGARd   Цитата(gp @ 9.11.2013, 15:23) Что-то ника...   9.11.2013, 18:03
- - avanGARd   Кто шарит в теме. Есть вопросик. Как осуществить с...   10.11.2013, 8:12
- - Olga   Добрый день! Подскажите пожалуйста в чём может...   5.2.2014, 15:11
- - Litkevich Yuriy   ну для начала проверь этот указатель на нуль, може...   5.2.2014, 16:35
- - Olga   QAxObject *statsheet=sheets->querySubObject(...   5.2.2014, 20:29
- - Olga   Разобралась, всё подключается и работает. Но тепер...   6.2.2014, 10:29
- - Litkevich Yuriy   Цитата(Olga @ 6.2.2014, 12:29) А если доб...   7.2.2014, 0:50
- - Гость   Добрый день. У меня Excel закрывается вместе с пр...   13.8.2014, 9:56
|- - JohnCS   Цитата(Гость @ 13.8.2014, 9:56) Добрый де...   13.8.2014, 10:14
- - Vincent_vega   Друзья, подскажите пожалуйста возникает ошибка ser...   8.10.2014, 11:06
- - Гость   с помощью active qt работаю с excel. имеется масси...   10.6.2015, 16:25
- - lanz   Передавайте QVariantList со всеми нужными числами.   10.6.2015, 21:02
- - ViGOur   Разделил тему, сообщения перенес в новою тему: Сох...   25.12.2015, 13:50


Быстрый ответОтветить в данную темуНачать новую тему
Теги


14 чел. читают эту тему (гостей: 14, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 23:31