Russian Qt Forum
Ноябрь 01, 2024, 18:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: работа с Excel  (Прочитано 8473 раз)
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? то есть мне интересно какими командами дать понять машине, что редактировать в уже открытом ей файле, напишите пожалуйста кто знает
Записан
ArhiZhek
Гость
« Ответ #1 : Апрель 28, 2012, 19:10 »

скажите пожалуйста кто знает, очень нужно... Уже перевернул много статей, но ничего подобного не встретил
Записан
vm_strannik
Гость
« Ответ #2 : Май 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();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 21.