Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Работа с Оpen Office из 1С на примере Calc

Работа с Оpen Office из 1С на примере Calc
Я
   kejsi
 
28.01.18 - 00:23
есть пара вопросов:
1. Устанавливаю ширину колонки - а меняется ширина всех колонок.

код такой
    Попытка
        ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
    Исключение
        Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice не установлена на данном компьютере!");
        Возврат ОписаниеОшибки();
    КонецПопытки;
    Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
    Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Свойства.Name = "AsTemplate";
    Свойства.Value = ложь;
    Args = Новый COMSafeArray("VT_VARIANT", 3);
    Args.SetValue(0, Свойства);
    Свойства1 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Свойства1.Name = "Hidden";
    Свойства1.Value = Истина;
    Args.SetValue(1, Свойства1);
    Document = Desktop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, Args);
    Sheets = Document.getSheets();
    Sheet = Sheets.getByIndex(0);
    мИтКол = 0;
    ТаблицаРезультата=док.Товары.Выгрузить();
    Для каждого кол из ТаблицаРезультата.Колонки Цикл
        Sheet.getCellByPosition(мИтКол,0).setString(кол.Имя); 
        мИтКол = мИтКол + 1;
    КонецЦикла;
    
    
    ВсегоСтрок = ТаблицаРезультата.Количество();
    ВсегоКолонок = ТаблицаРезультата.Колонки.Количество();
    МассивКОМ = Новый COMSafeArray("VT_VARIANT", ВсегоСтрок,ВсегоКолонок);
    иткол = 0;
    итстр = 0;

    Для каждого стр из ТаблицаРезультата Цикл
        Для каждого кол из ТаблицаРезультата.Колонки Цикл
            стрРез = СокрЛП(стр[кол.Имя]);
            МассивКОМ.SetValue(итстр,иткол,стрРез);
            иткол = иткол+1;
         КонецЦикла;
        иткол = 0;
        итстр = ?(итстр=ВсегоСтрок,0,итстр+1);
    КонецЦикла;
    begCol = 0;
    begRow = 1;
    endCol = ВсегоКолонок-1;
    endRow = ВсегоСтрок;
    Columns0=Sheet.getColumns().getByIndex(0);
    Columns0.OptimalWidth=0;
      Columns0.Width=200;
       Range = Sheet.getCellRangeByPosition(begCol, begRow, endCol, endRow);
    Range.setDataArray(МассивКОМ);
    //Document.storeToURL(ПривестиФайлКУРЛ(ПутьКФайлу),Args);

    Свойства2 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Свойства2.Name = "FilterName";
    Свойства2.Value = "MS Excel 97";
    Args.SetValue(2,Свойства2);
    Document.GetCurrentController().GetFrame().GetContainerWindow().SetVisible(Истина);


и вот где 
Columns0.Width=200;
меняется ширина всех колонок на 200

2. Как установить защиту на лист паролем (чтобы нельзя было ничего изменить кроме 2х указанных ячеек)

3. Может у кого есть полная обработка указанная в примере
http://wiki.mista.ru/doku.php?id=1c:v8:howto:rabota_s_open_office_iz_1s_na_primere_calc

просто там не хватает пары процедур в частности НачатьВыводВOpenDocument

Спасибо
 
 
   kejsi
 
1 - 29.01.18 - 22:30
Может кто-то поможет? Буду очень благодарен!
   cw014
 
2 - 29.01.18 - 22:38
Что гугл говорит про твои вопросы?
   cw014
 
3 - 29.01.18 - 22:39

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует