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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: построение таблицы в excel, по данным, посчитанным в Qt  (Прочитано 6981 раз)
ArhiZhek
Гость
« : Февраль 25, 2012, 23:16 »

Подскажите пожалуйста, какими командами можно из lineEdit (их несколько, созданы в ui) перекинуть данные в ячейки Excel?
Записан
Rem Norton
Гость
« Ответ #1 : Февраль 25, 2012, 23:39 »

http://developer.qt.nokia.com/forums/viewthread/1871
Записан
ArhiZhek
Гость
« Ответ #2 : Февраль 26, 2012, 00:19 »

благодарю, помогло, но вот другая проблема - шрифт(покажу конец прогр, т.к. она большая)
Код:
QAxObject *range = StatSheet->querySubObject("Range(const QVariant&)", QVariant( QString("A1:C10")));

     range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(2),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_25->text());
         range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(3),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_26->text());
         range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(4),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_27->text());


         excel->dynamicCall( "SetVisible(bool)", TRUE );
         this->setCursor(Qt::ArrowCursor);
         delete excel [font="Courier New"]; //никак не пойму как "ему" объяснить, а то ругается...

     }
 
Записан
Rem Norton
Гость
« Ответ #3 : Февраль 26, 2012, 00:34 »

А что собственно подразумевалось под этим? Что должно по идее происходить? В смысле: какова задумка автора?
Код:
delete excel [font="Courier New"];
Записан
ArhiZhek
Гость
« Ответ #4 : Февраль 26, 2012, 11:05 »

моя задумка - это отправить посчитанные данные из Qt в excel, код вроде бы верный на отправку, но вот никак не пойму в чем проблема, опять же с этой строчкой на указание шрифта, если без нее, то выдает 15 ошибок, если с ней то от 1 до 5, в зависимости от места ее расположения в коде
Код:
   void Widget::exportToExcel(){

        this->setCursor(Qt::WaitCursor);
     QAxObject *excel = new QAxObject("Excel.Application", this);
     QAxObject *workbooks = excel->querySubObject("Workbooks");
     QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", "tabl.xlsx" );
     QAxObject *sheets = workbook->querySubObject("Sheets");
     QAxObject *StatSheet = sheets->querySubObject("Item(const QVariant&)", QVariant("1") );
     StatSheet->dynamicCall("Select()");
     QAxObject *range = StatSheet->querySubObject("Range(const QVariant&)", QVariant( QString("A1:C10")));

     range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(2),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_25->text());
         range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(3),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_26->text());
         range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(4),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_27->text());


         excel->dynamicCall( "SetVisible(bool)", TRUE );
        this->setCursor(Qt::ArrowCursor);
         delete excel;

     }
выдал 15 ошибок причем все однотипные - не определена ссылка на QAxBase

Код:
      excel->dynamicCall( "SetVisible(bool)", TRUE );
         this->setCursor(Qt::ArrowCursor);
         [font="Courier New"];
         delete excel[/font];

     }
а так всего три, никак не пойму что "ему" нужно
« Последнее редактирование: Февраль 26, 2012, 11:26 от ArhiZhek » Записан
ArhiZhek
Гость
« Ответ #5 : Февраль 26, 2012, 12:17 »

убрал полностью все Font и вставил вот такую строчку  QAxObject::QAxObject (QString const&, QObject*);
Код:
 void Widget::exportToExcel(){

        this->setCursor(Qt::WaitCursor);
     QAxObject::QAxObject (QString const&, QObject*); // но на этот раз выдает ошибку только на эту строчку типа (ожидание первичного выражения до "(" ";" "," "*") 4 ошибки
     QAxObject *excel = new QAxObject("Excel.Application", this);
     QAxObject *workbooks = excel->querySubObject("Workbooks");
     QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", "C:\Temp\tipaprogramy\tabl.xls" );
     QAxObject *sheets = workbook->querySubObject("Sheets");
     QAxObject *StatSheet = sheets->querySubObject("Item(const QVariant&)", QVariant("1") );
     StatSheet->dynamicCall("Select()");
     QAxObject *range = StatSheet->querySubObject("Range(const QVariant&)", QVariant( QString("A1:C10")));

     range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(2),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_25->text());
         range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(3),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_26->text());
         range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(4),QVariant(3));
         range->dynamicCall("SetValue(const QVariant&)", ui->lineEdit_27->text());


         excel->dynamicCall( "SetVisible(bool)", TRUE );
         this->setCursor(Qt::ArrowCursor);

         delete excel;

     }
Записан
mutineer
Гость
« Ответ #6 : Февраль 26, 2012, 13:57 »

Код
C++ (Qt)
[font="Courier New"];
        delete excel[/font];

в плюсах таких конструкций нет. что ты хотел сказать этими двумя строками?
Записан
ArhiZhek
Гость
« Ответ #7 : Февраль 26, 2012, 14:00 »

я предположил что это шрифт, которым будет напечатан в excel, но теперь я вообще не понимаю где у меня ошибка... В замешательстве
« Последнее редактирование: Февраль 26, 2012, 14:03 от ArhiZhek » Записан
mutineer
Гость
« Ответ #8 : Февраль 26, 2012, 14:14 »

я предположил что это шрифт, которым будет напечатан в excel, но теперь я вообще не понимаю где у меня ошибка... В замешательстве


В этом языке такая запись не имеет смысла
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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