Russian Qt Forum

Qt => ActiveX => Тема начата: akaMDA от Декабрь 02, 2010, 19:45



Название: Вставка данных в cell
Отправлено: 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" происходит, она выделена, но данные не добавляются. Так же не получается, например, изменить фон ячейки. Креатор не ругается никак. Подскажите, в чем проблема?


Название: Re: Вставка данных в cell
Отправлено: TnT от Декабрь 12, 2010, 02:30
Вместо
Код:
cell->querySubObject("Select");
cell->setProperty("Value", QVariant(data));
необходимо использовать
Код:
cell->dynamicCall("SetValue(const QVariant&)", data);


Название: Re: Вставка данных в cell
Отправлено: kolob от Апрель 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;