Показать сообщение отдельно
Старый 29.05.2007, 11:01   #1  
PT is offline
PT
Участник
Аватар для PT
 
22 / 10 (1) +
Регистрация: 11.08.2004
Адрес: Сибирь
OpenOffice форматирование
Привет всем. Я создаю документ 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");
    }