crossplatform.ru

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

8 страниц V  « < 4 5 6 7 8 >  
Ответить в данную темуНачать новую тему
> Cells в QT при работе с MS Office
Rocky
  опции профиля:
сообщение 20.2.2011, 20:46
Сообщение #51


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


Ясно.

Цитата(breeve @ 20.2.2011, 13:13) *
QStringList list[cols];
.........
for(int j = 1; j < cols+1; j++) {
.........
if(str.isEmpty()) list[j].append("Empty");
else list[j].append(str);

Имхо криминал тут. Понятно почему? (нужно быть внимательнее с индексами)

Сообщение отредактировал Rocky - 20.2.2011, 20:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AlexeyDonald
  опции профиля:
сообщение 22.2.2011, 1:56
Сообщение #52


Новичок


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

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




Репутация:   0  


Народ подскажите, цель поменять имя листа в документе, не пойму в чем ошибка. Вот проблема, я экспортирую дату в excel, открываю документ, все нормально работает до определенного момента, код ниже:
    QAxObject* excel = new QAxObject( "Excel.Application" );
    excel->dynamicCall( "SetVisible(bool)", TRUE );
    QAxObject *workbooks = excel->querySubObject( "Workbooks()" );

    QAxObject* workbook = workbooks->querySubObject( "Add()" );
    QAxObject* Sheets = workbook->querySubObject( "Sheets" );
    QAxObject* Sheet;
    Sheets->querySubObject("Add");
    Sheets->querySubObject("Add");
    Sheets->querySubObject("Add");

    Sheet =Sheets->querySubObject( "Item(int)" ,1);
    Sheet->dynamicCall( "Select()" );
    Sheet->setProperty("Name","name1");
    ExportToPage1(Sheet,model_1);

После этого названия листа меняется нормально.
Но дальше отказывается менять имя листа.
    Sheet =Sheets->querySubObject( "Item(int)" ,2); 
    Sheet->dynamicCall( "Select()" );
    Sheet->dynamicCall("Name","name2");
    ExportToPage2(Sheet,model_2);

    Sheet =Sheets->querySubObject( "Item(int)" ,3);
    Sheet->dynamicCall( "Select()" );
    Sheet->setProperty("Name(QString)","name3");
    ExportToPage2(Sheet,model_3);

    Sheet = Sheets->querySubObject( "Item(int)" ,4);
    Sheet->dynamicCall( "Select()" );
    Sheet->setProperty("SetName(QString)","name4");
    ExportToPage2(Sheet,model_4);

пишет:

QAxBase: Error calling IDispatch member Name: Exception thrown by server
Code : 1004
Source : Microsoft Excel
Description: ??????? ???????????? ??? ??? ????? ??? ?????????. ?????????, ???:

? ????? ?????????? ????? ?? ????????? 31 ?????;
? ??? ?? ???????? ?? ?????? ?? ????????? ??????: : \ / ? * [ ??? ];
? ??? ?? ????????? ??????.
Help : xlmain11.chm
Connect to the exception(int,QString,QString,QString) signal to catch this exception

Кто нибудь знает в чем дело? Спасибо!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
pavelqt
  опции профиля:
сообщение 7.9.2011, 8:33
Сообщение #53


Новичок


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

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




Репутация:   0  


Уже который день мучаюсь, не получается, подскажите пожалуйста, где не прав?
Qt + MS Outlook -> заводим новый контакт
QAxObject *contactItems = myFolder->querySubObject( "Items" );

// удалять контакты без проблем!
// contactItems->dynamicCall("remove(int )", 1 );

//А вот добавить не хочет никак :(
// contactItems->querySubObject( "CreateItem(olContactItem)", "olContactItem" );

// QAxObject *item = contactItems->querySubObject( "Add(const QVariant&)", QVariant("0099881") );

И второе, как ловить и читать данные исключения?

QAxBase: Error calling IDispatch member Add: Exception thrown by server
Code : 4096
Source : Microsoft Office Outlook
Description: ?????? ?? ??????.
Help :
Connect to the exception(int,QString,QString,QString) signal to catch this exception
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.9.2011, 16:25
Сообщение #54


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(pavelqt @ 7.9.2011, 11:33) *
И второе, как ловить и читать данные исключения?
Цитата(pavelqt @ 7.9.2011, 11:33) *
Connect to the exception(int,QString,QString,QString) signal to catch this exception
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Alisher_*
сообщение 22.9.2011, 11:29
Сообщение #55





Гости








    


Подскажите пожалуйста, как в цикле вывести все значения ячеек дипазона
QAxObject* range = StatSheet->querySubObject("Range(const QVariant&)",QVariant(QString("B9:B29")) );
такого например.
Можно это сделать без использования контейнеров?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Данил_*
сообщение 20.12.2011, 13:45
Сообщение #56





Гости








    


Мне кажется, что тему нужно назвать работа с Excel, а не работа с MS Office. Там, кроме Excel ничего не затронуто.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Maclaren_*
сообщение 21.4.2012, 1:44
Сообщение #57





Гости








    


Цитата(Данил @ 20.12.2011, 13:45) *
Мне кажется, что тему нужно назвать работа с Excel, а не работа с MS Office. Там, кроме Excel ничего не затронуто.

Подскажите как добавить строку в таблицу в word ??
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
romeodka
  опции профиля:
сообщение 9.8.2012, 8:34
Сообщение #58


Новичок


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

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




Репутация:   0  


Я открыл документ word, изменил нужные мне данные. как теперь сохранить его в другой файл?

doc->querySubObject("SaveAs (const QString&)", initialName+"/pko1.docx");
и
doc->dynamicCall("SaveAs (const QString&)", initialName+"/pko1.docx");
не работает
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_gp_*
сообщение 9.11.2013, 14:23
Сообщение #59





Гости








    


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

Вот мой исходный код:
#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
Сообщение #60


Новичок


Группа: Новичок
Сообщений: 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, как было рекомендовано на том форуме. И всё сразу же заработало. Так вот ведь, в чём загвоздка была!!! Почти пол-дня потратил на выяснение причины, наткнулся на решение чисто случайно :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

8 страниц V  « < 4 5 6 7 8 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги


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




RSS Текстовая версия Сейчас: 27.11.2024, 1:05