Привет всем. Я создаю документ OpenOffice эл.табл . Вставляю туда текст. Все нормально. Но совершенно не получается его отформатировать из кода. Хотя бы шрифт изменить и формат ДатаВремя назначить ячейке..
вот код, подскажите
X++:
static void oo_2(Args _args)
{
COM OpenOffice;
COM oDeskTop;
COM oDocument;
COM oscr;
COM oSheets;
COM oRange;
COM oSheet;
COM oNumberFormats;
COM oFormat;
COM oMassiv;
COM oSaveParam;
COM oLocale;
COM oParam;
COM oAAA;
COM oText;
int i;
COMVariant arg;
COMVariant byte;
Array arr = new Array(Types::String);
//Создание экземпляра OpenOffice.org
OpenOffice = new Com("com.sun.star.ServiceManager");
oDeskTop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop");
// create and initialize a COMVariant object
arg = COMVariant::createFromArray(arr);
//Создание документа
oDocument = oDeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, arg);
oSheets = oDocument.getSheets();
oSheet = oSheets.getByIndex(0);
oNumberFormats = oDocument.getNumberFormats();
oLocale = OpenOffice.bridge_GetStruct( "com.sun.star.lang.Locale" );
oParam=OpenOffice.bridge_GetStruct('com.sun.star.beans.PropertyValue');
byte = COMVariant::createFromStr("com.sun.star.util.NumberFormat.DATETIME");
// oFormat = oNumberFormats.getStandardFormat(arg.byte(2),olocale);
for(i=1; i<15;i++)
{
oRange = oSheet.getCellByPosition(1,i);
oRange.Setstring('Прелесть какая');
oRange = oSheet.getCellByPosition(2,i);
oRange.SetValue(i);
oRange = oSheet.getCellByPosition(3,i);
oRange.SetString(date2str(today(),123,2,2,2,2,4));
oRange = oSheet.getCellByPosition(4,i);
oRange.SetString(today());
oText = oRange.Text();//
print(oText.charHeight());
oAAA = oText.createTextCursor();
print(oAAA.charHeight());
oAAA.CharHeight(25);
print(oAAA.charHeight());
oParam.Name("Bold");
oParam.Value("true");
//oRange.setFormat(oFormat);
}
oRange = oSheet.getCellRangeByName("C1:C10");
pause;
oSaveParam=oDocument.setPropertyValue("FilterName","MS Excel 97");
}