Russian Qt Forum

Qt => ActiveX => Тема начата: Daniel от Октябрь 01, 2011, 18:12



Название: Форматировать Range (Excel)
Отправлено: Daniel от Октябрь 01, 2011, 18:12

В общем, есть объект Range. Единственное, что могу с ним сделать - это поместить в него значение(или считать):
Код:
range->setProperty("Value", value);

Нужно немного оформить табличку Экселя. Подскажите, пожалуйста, как хотя бы жирным сделать текст? Или фон ячейки поменять, или границы. Не могу найти как эти свойства называются.


Название: Re: Форматировать Range (Excel)
Отправлено: CMorgan от Октябрь 03, 2011, 15:17
Шрифт:
Код:
QAxObject *font = range->querySubObject("Font");

font->setProperty("Bold",FALSE);
font->setProperty("Italic",FALSE);
...
font->setProperty("Underline4",FALSE);

delete font;

Заливка ячейки цветом цвет передаем в виде QColor:
Код:
QAxObject *cells = range->querySubObject("Cells");				
QAxObject *interior = cells->querySubObject("Interior");

if(color.alpha()==0)
{
interior->setProperty("ColorIndex", -4142);
}
else
{
interior->setProperty("Color", color);
}

delete interior;
delete cells;

С границами примерно по тому же принципу.

Вообще берешь AxObject (к примеру, в твоем случае range) и пишешь для него
Код:
QFile outfile("C:/Temp/excel_range.html");
QTextStream out( &outfile );
outfile.open( QIODevice::WriteOnly| QIODevice::Text);
QString docu = range->generateDocumentation();
out << docu;
outfile.close();
Потом читаешь что там написано в файле все что с значениями   IDispatch* нужно получать через QAxObject *что-то интересующее = твой обьект ->querySubObject("что-то интересующее"); и для нового объекта снова генерить описание
Все остальное в общем случае через    setProperty - установить, property - прочитать.


Название: Re: Форматировать Range (Excel)
Отправлено: Daniel от Октябрь 03, 2011, 19:28
CMorgan, огромнейшее Вам спасибо, реально выручили!