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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вставка данных в cell  (Прочитано 5320 раз)
akaMDA
Гость
« : Декабрь 02, 2010, 19:45 »

Код:
 QAxObject *mExcel = new QAxObject("Excel.Application", this);
    mExcel->setProperty("Visible", true);
    mExcel->setProperty("DisplayAlerts", "0");

    QAxObject *workbooks = mExcel->querySubObject("Workbooks");

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

    QAxObject *mSheets = workbook->querySubObject("Sheets");

    QAxObject *StatSheet = mSheets->querySubObject("Add()");
    StatSheet->setProperty("Name", "Векторизация");

    QVariant row(2);
    QVariant col(2);
    QVariant data("213");

    QAxObject* cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", row, col);
    cell->querySubObject("Select");
    cell->setProperty("Value", QVariant(data));

    delete cell;
    delete StatSheet;
    delete mSheets;
    delete workbook;
    delete workbooks;
    delete mExcel;

Созданию новую книгу. пытаюсь вставвить данные в ячейку 2 2. "Select" происходит, она выделена, но данные не добавляются. Так же не получается, например, изменить фон ячейки. Креатор не ругается никак. Подскажите, в чем проблема?
Записан
TnT
Гость
« Ответ #1 : Декабрь 12, 2010, 02:30 »

Вместо
Код:
cell->querySubObject("Select");
cell->setProperty("Value", QVariant(data));
необходимо использовать
Код:
cell->dynamicCall("SetValue(const QVariant&)", data);
Записан
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #2 : Апрель 14, 2011, 15:15 »

Цитировать
cell->dynamicCall("SetValue(const QVariant&)", data);

можно просто вот так:
Код:
QAxObject* cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", row, col);
cell->setProperty("Value", QVariant(data));
delete cell;
Изменение фона ячейки:
Код:
QAxObject* cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", row, col);
QAxObject* interior=cell->querySubObject("Interior");
interior->setProperty("Color",QColor("green"));
delete interior;
delete cell;
Записан

Qt 5.11.0, Win, MinGW
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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