Russian Qt Forum

Qt => ActiveX => Тема начата: ArhiZhek от Апрель 26, 2012, 18:30



Название: работа с Excel
Отправлено: ArhiZhek от Апрель 26, 2012, 18:30
чтобы начать работать с Excel файлом нужно написать вот такой код
Код:
this->setCursor(Qt::WaitCursor);
     QAxObject *excel = new QAxObject("Excel.Application", this);
     QAxObject *workbooks = excel->querySubObject("Workbooks");
     QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", "C:\\temp\\avto\\tabl.xls" );
     QAxObject *sheets = workbook->querySubObject("Sheets");
     QAxObject *StatSheet = sheets->querySubObject("Item(const QVariant&)", QVariant("1") );
     StatSheet->dynamicCall("Select()");
     QAxObject* range= StatSheet->querySubObject("Cells(QVariant&,QVariant&)", QVariant( QString("A1:H1000")));

но вот как редактировать уже открытый файл Excel? то есть мне интересно какими командами дать понять машине, что редактировать в уже открытом ей файле, напишите пожалуйста кто знает


Название: Re: работа с Excel
Отправлено: ArhiZhek от Апрель 28, 2012, 19:10
скажите пожалуйста кто знает, очень нужно... Уже перевернул много статей, но ничего подобного не встретил


Название: Re: работа с Excel
Отправлено: vm_strannik от Май 04, 2012, 10:31
Есть некоторые наработки, может чем поможет
QAxObject *rangesYear = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(sCellYear));
            rangesYear->dynamicCall("setValue(const QVariant&)",QVariant(sYear));
            QAxObject *rangesMan = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(sCellMan));
            rangesMan->dynamicCall("setValue(const QVariant&)",QVariant(sMan));
            QAxObject *rangecIn = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(QString("10:10")));
            rangecIn->dynamicCall("Select()");
            rangecIn->dynamicCall("Insert");
            QAxObject *rangeMerge = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(QString("A10:Z10")));
            rangeMerge->dynamicCall("MergeCells",TRUE);
//             QAxObject *rangeCategoryName = StatSheet->querySubObject( "Range(const QVariant&)",QVariant(sCellCategoryName));
//             rangeCategoryName->dynamicCall("setValue(const QVariant&)",QVariant(sCategoryName));

А вообще список методов и полей объекта получить можно так:
   QTextEdit *fQTextEdit = new QTextEdit(NULL);
   fQTextEdit->setHtml(ui.axWidget->generateDocumentation());
   fQTextEdit->show();