Russian Qt Forum

Qt => ActiveX => Тема начата: CMorgan от Сентябрь 27, 2011, 17:12



Название: Excel Range чтение/запись диапазона значений возможно ли?
Отправлено: CMorgan от Сентябрь 27, 2011, 17:12
Здравствуйте.

Неожиданно возник вопрос возможно ли в принципе через QT (QAxObject) в Excel читать или писать диапазоны значений?

Код:
QVariant data;
QAxObject* range = _curSheet->querySubObject("Range(const QVariant&)",QVariant("A1:A2"));
data=range->dynamicCall("Value()");
выдает QVariant типа QList с пустыми значениями внутри :-[

Код:
QStringList NewData;
NewData.push_back("1111");
NewData.push_back("2222");
QVariant data=QVariant(NewData);
QAxObject* range = _curSheet->querySubObject("Range(const QVariant&)",QVariant("A1:A2"));
range->setProperty("Value",data);
Прописывает в диапазоне (A1:A2) первое значение из data, т.е. "1111" :-[



Название: Re: Excel Range чтение/запись диапазона значений возможно ли?
Отправлено: CMorgan от Октябрь 03, 2011, 15:23
Запись пачкой я нашел как  сделать (пример для QList<QVariant> _data):
Код:
int excel::setRange(int row_b,int column_b)
{

int row_e=_data.size();
int column_e=_data[0].toList().size();

row_e=row_e+row_b-1;
column_e=column_e+column_b-1;

QString RangeStr=range2a1(column_b,row_b,column_e,row_e);
QAxObject *range = _curSheet->querySubObject("Range(QString)",RangeStr);

range->setProperty("Value",QVariant(_data));

delete range;

return 0;

}


А вот с чтением беда-беда:(