Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:05

Выбор кодировки при открытие файла через OpenOffice

Автор Жернаков Александр, 28 сен 2017, 15:12

0 Пользователей и 1 гость просматривают эту тему.

Жернаков Александр

Добрый день. При открытие файла с помощью openoffice получаю иероглифы, необходимо установить дополнительный параметр с выбором кодировки . Как это сделать ?

   Попытка
             OpenOffice = Новый ComОбъект("com.sun.star.ServiceManager");
         scr = Новый ComОбъект("MSScriptControl.ScriptControl");
    Исключение
        Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice\LibreOffice не установлена на данном компьютере!");
    КонецПопытки;
   

// Думаю где то в этом фрагменте//
    scr.language = "javascript";
    scr.eval("MassivParametrov = new Array()");
    scr.Charset = "windows-1251" ;
    MassivParametrov = scr.eval("MassivParametrov");
    scr.AddObject("OpenOffice", OpenOffice);
    scr.Charset = "windows-1251" ;
    scr.eval("MassivParametrov[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
    scr.eval("MassivParametrov[0].Name='Hidden'");
    scr.eval("MassivParametrov[0].Value=true");

// Думаю где то в этом фрагменте //

    Desktop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop"); // Создаем Desktop
    Doc = Desktop.LoadComponentFromURL(ПривестиФайлКУРЛ(Объект.ПустьКФайлу), "_blank", 0, MassivParametrov);

    Doc.lockControllers();
    Doc.addActionLock();

    Sheets = Doc.GetSheets();
    Лист = Sheets.GetByIndex(0); // Открываем первый лист по индексу
   
    oCell = Лист.GetCellbyPosition(0, 0);
    oCursor = Лист.createCursorByRange(oCell);
    oCursor.GotoEndOfUsedArea(Истина);
    aAddress = oCursor.RangeAddress;
    Объект.Столб = aAddress.EndRow;             /// Количество Столбиков
    Объект.Строки =aAddress.EndColumn;                /// Количество Строк
   
    СчетчикСтолб = 0;
    СчетчикСтрок = 0;
     
    Пока Число(Объект.Столб) >= СчетчикСтрок Цикл
        СчетчикСтолб = 0;     
        Пока Число(объект.Строки) >= СчетчикСтолб цикл 
            Объект.СпискоЗначений.Добавить(Лист.getCellByPosition(СчетчикСтолб, СчетчикСтрок).getText().String()); 
            СчетчикСтолб = СчетчикСтолб + 1;
        КонецЦикла;
        СчетчикСтрок = СчетчикСтрок + 1;
    КонецЦикла;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск