HelpF.pro

Чтение RTF файлов через OpenOffice.

Для 8.х заменить СоздатьОбъект( на Новый COMОбъект(
Код 1C v 7.x
 // Пример от  Jaap Vduul 
// Пример чтения таблицы из OpenOffice:
// =====================================    
    ServiceManager     = СоздатьОбъект("com.sun.star.ServiceManager");
    Desktop             = ServiceManager.createInstance("com.sun.star.frame.Desktop");
    script             = СоздатьОбъект("ScriptControl");
    script.Language     = "vbs";
    script.AddCode
    (
        "Dim Parameters()
        |   
        |Sub InitParameters(Size)
        |     
        |    Erase Parameters
        |
        |    If Size > 0 Then 
        |        Redim Parameters(Size - 1) 
        |    End If
        |
        |End Sub
        |    
        |Sub SetParameter(ServiceManager, Name, Value, Index)
        |
        |    Set PropertyValue     = ServiceManager.Bridge_GetStruct(""com.sun.star.beans.PropertyValue"")
        |    PropertyValue.Name     = Name
        |    PropertyValue.Value     = Value
        |    
        |    Set Parameters(Index) = PropertyValue
        |
        |End Sub
        |    
        |Sub SetBooleanParameter(ServiceManager, Name, Value, Index)
        |    
        |    SetParameter ServiceManager, Name, Cbool(Value), Index
        |
        |End Sub
        |
        |Function LoadDocument(ComponentLoader, URL, TargetFrameName, SearchFlags)
        |   
        |    Set LoadDocument = ComponentLoader.loadComponentFromURL(URL, TargetFrameName, SearchFlags, Parameters)
        |
        |End Function
        |
        |Sub CloseDocument(Document)
        |
        |    Document.Close True
        |
        |End Sub"
    );
       
    script.Run("InitParameters", 2);
    script.Run("SetBooleanParameter", ServiceManager, "ReadOnly",     1, 0);
    script.Run("SetBooleanParameter", ServiceManager, "Hidden",         1, 1);

    URL = ПреобразоватьВURL(КаталогПриказов + НомерПриказа + ".rtf");
    Документ = script.Run("LoadDocument", Desktop, URL, "_blank", 0);
    Таблица = Документ.TextTables.getByIndex(0); // ссылка на первую таблицу

    ВсегоСтрок         = Таблица.getRows().getCount();
    ВсегоСтолбцов     = Таблица.getColumns().getCount();
     
    Для ИндексСтроки = 1 По (ВсегоСтрок - 1) Цикл // ИндексСтроки = 1, т.к. пропускаем заголовок
        Для ИндексСтолбца = 0 По (ВсегоСтолбцов - 1) Цикл
            Ячейка = Таблица.getCellByPosition(ИндексСтолбца, ИндексСтроки);
            ТекстЯчейки = Ячейка.getString();
        КонецЦикла;
    КонецЦикла;

    script.Run("CloseDocument", Документ);

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/609.html