Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Aleksand0r
0 / 0 / 1
Регистрация: 31.01.2017
Сообщений: 7
1

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

28.09.2017, 14:00. Просмотров 417. Ответов 2
Метки нет (Все метки)

Добрый день. При открытие файла с помощью openoffice получаю иероглифы, необходимо установить дополнительный параметр с выбором кодировки . Как это сделать ?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
   Попытка
             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;
    КонецЦикла;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2017, 14:00
Ответы с готовыми решениями:

Выбор кодировки для сохранения BAT-файла
Windows 10 русская редакция - при создании текстовых файлов по умолчанию...

Выбор кодировки при работе с фтп сервером
есть задача - индексировать файлы на фтп-сервере. Основная ее часть готова, но...

Выбор из combobox и открытие файла
расскажите как выбрать какой-нибудь item из ComboBox и по нажатию кнопки...

Не работает ввод имени файла через fget и открытие через fopen
Уже все перепробовал и в гугле пару часов посидел. Но никак не пойму где...

Открытие БД и выбор таблицы из INI файла
Собственно есть много БД, в БД может быть одна таблица, а может быть и...

2
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,134
28.09.2017, 15:32 2
А если убрать это? scr.Charset = "windows-1251" ;

а вообще вот хороший пример OpenOffice по com https://infostart.ru/public/87317/
0
Aleksand0r
0 / 0 / 1
Регистрация: 31.01.2017
Сообщений: 7
28.09.2017, 15:40  [ТС] 3
Не обратил внимание , в исходном коде этих строк нету . При запуске с ними вылетает ошибка.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Попытка
         OpenOffice = Новый ComОбъект("com.sun.star.ServiceManager");
         scr = Новый ComОбъект("MSScriptControl.ScriptControl"); 
    Исключение
        Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice\LibreOffice не установлена на данном компьютере!");
    КонецПопытки;
     
    scr.language = "javascript";
    scr.eval("MassivParametrov = new Array()");
    
        
    MassivParametrov = scr.eval("MassivParametrov");
    scr.AddObject("OpenOffice", OpenOffice);
    
 
    
    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;
    КонецЦикла;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2017, 15:40

Выбор в ComboBox и открытие файла по нажатию кнопки ОК
как реализовать выбор года из ComboBox и по нажатию кнопки ОК открытие xlsx...

OpenFileDialog - выбор и открытие файла с расширением exe
Вообщем есть две кнопки Button и один openDialog, первая кнопка обращается к...

Открытие файла через OpenFileDIalog и записать имя файла в переменную
Можно ли в формах Pascal ABC Net, открыв файл через openfiledialog, записать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru