Имя: Пароль:
1C
1С v8
Кто знает как загрузить через LibreOffice формат ячейки?
0 Fannasankh
 
16.12.15
08:40
Функция ЗагрузитьТЗизФайла(ПутьКФайлу,текЛист = 1,имяЛиста="") Экспорт
    
    //OpenOffice Calc//////////////////////////////////////////////////////////////////////////////////////////////
    Попытка
        ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
    Исключение
        Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice\LibreOffice не установлена на данном компьютере!");
        Возврат Неопределено;
    КонецПопытки;
    Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
    Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Свойства.Name = "AsTemplate";
    Свойства.Value = Истина;
    Args = Новый COMSafeArray("VT_VARIANT", 2);
    Args.SetValue(0, Свойства);
    Свойства1 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Свойства1.Name = "Hidden";
    Свойства1.Value = Истина;
    Args.SetValue(1,Свойства1);
    Document = Desktop.LoadComponentFromURL(ПривестиФайлКУРЛ(ПутьКФайлу), "_blank", 0, Args);
    Sheets = Document.getSheets();
    Count = Sheets.getCount();
    Sheet = Sheets.getByName(имяЛиста);
    //Sheet = Sheets.getByIndex(текЛист-1);
    локТабЗнач = Новый ТаблицаЗначений;
    begCol = 0;
    begRow = 0;
    endCol = Sheet.Data.GetLength(6) - 1;
    endRow = Sheet.Data.GetLength() - 1;
    нКол = 0;
    локТабЗнач.Колонки.Очистить();
    
    КС = Новый КвалификаторыСтроки(50);
    Массив = Новый Массив;
    Массив.Добавить(Тип("Строка"));
    
    ОписаниеТиповСтрока = Новый ОписаниеТипов(Массив, , КС);
    
    Пока нКол <= endCol Цикл
        ИмяКол = "К"+Строка(нкол+1);
        локТабЗнач.Колонки.Добавить(ИмяКол,ОписаниеТиповСтрока);
        нКол = нКол + 1;
    КонецЦикла;
    Range = Sheet.getCellRangeByPosition(begCol, begRow, endCol, endRow);
    МассивКом = Новый COMSafeArray("VT_VARIANT", Range.Columns.Count, Range.Rows.Count);
    МассивКом = Range.getDataArray();
    тмпПростойМассив = МассивКом.Выгрузить();
    Для каждого массив из тмпПростойМассив Цикл
        ит = 0;
        НовСтрока = локТабЗНач.Добавить();
        Для каждого ЭлементМассива из массив цикл
            НовСтрока[ит] = ЭлементМассива;
            ит = ит + 1;
        КонецЦикла;
    КонецЦикла;
    Возврат локТабЗнач;
    
КонецФункции


Идея такая: создать дополнительные колонки, в которых в каком-то виде хранить данные о формате ячеек в данной строке. Вопрос, как мне узнать формат? Интересует конкретно выделен ли текст курсивом или жирным.
1 Кирпич
 
16.12.15
08:46
щас в интернете поищу
2 Кирпич
 
16.12.15
08:47
3 Fannasankh
 
16.12.15
08:48
(2) похоже, сейчас попробую
4 DDwe
 
16.12.15
08:50
(1) Какой любезный )))
5 Кирпич
 
16.12.15
08:51
(4) карму качаю
6 Fannasankh
 
16.12.15
08:51
(2) правда не понятно, как теперь в моём коде получить конкретную ячейку. Там оно сразу выгружается в массив целиком
7 Кирпич
 
16.12.15
08:56
(6) видимо нужно как то изменить твой код
8 Fannasankh
 
16.12.15
09:00
(7) логично :)
просто я первый раз работаю с open office. И этот код взял на инфостарте.
Я так понимаю, что Range - это диапазон ячеек. Как из него получить конкретную ячейку?
9 Кирпич
 
16.12.15
09:03
(8) я вообще с open office не работал ещё.
щас в инете поищу.
10 Кирпич
 
16.12.15
09:05
11 Fannasankh
 
16.12.15
09:14
(10) спасибо
12 DDwe
 
16.12.15
09:14
(9) Прокачался!!!
13 Кирпич
 
16.12.15
09:16
(12) ну теперь можно какую нибудь гадость сделать
14 Mikeware
 
16.12.15
09:25
(13)
илья старается скорее
уравновесить зло добром
увидел парни бьют мальчишку -
красиво рядом станцевал
©
15 Кирпич
 
16.12.15
09:34
в жестоком мире open office
парнишка робкий заплутал,
но слава богу нам сегодня
уже включили интернет
16 Кирпич
 
16.12.15
09:46
когда души порыв прекрасный
буквально гложет изнутри,
бери любой вопрос на мисте
и не стесняясь загугли.

и мир становится прекрасней,
и изнутри цветут цветы
когда пойдут плюсЫ на карму
за эти скромные труды.
17 Fannasankh
 
17.12.15
10:15
Тут все так хорошо гуглом пользуются, я так не умею:)

Кто найдёт как изменить текст на полужирный?
Вот тут http://www.openoffice.org/api/docs/common/ref/com/sun/star/table/CellProperties.html
такого нет.