Скрипт для автоматического открытия OpenOffice.org с параметрами

В одном из моих проектов для обмена достаточно большим объёмом данными между компьютером пользователя и WEB-приложением используется CSV-файл с следующими характеристиками:
Кодировка — UTF-8.
Разделитель поля — точка с запятой ( ; ).
Разделитель текста — пустая строка (ничего не используется).

Со всех сторон (и клиентской, и серверной) всё хорошо работает, но есть один пунктик, который очень сильно достаёт тех кто работает с файлом — каждый раз при открытии файла в OpenOffice.org 3 Calc (Электронные таблицы) постоянно запрашивается кодировка файла и разделители. Напрягает.

После обращения на несколько ресурсов с вопросом как это можно автоматизировать, меня совершенно справедливо отправили на форум компании ИнфраРесурс, и там почти сразу некий добрый человек smaharbA предложил простое и изысканное решение моего вопроса.

Я в начале думал, что OpenOffice.org 3 Calc нужно передать параметры кодировки и разделителей через командную строку, а оказалось это делается через макрос.

Для создания макроса откройте OpenOffice.org 3 Calc и выберите в меню Сервис — Макросы — Управление макросами — OpenOffice.org Basic…
OpenOffice.org 3 Calc Создание макроса — Меню // MeAndUbuntu.ru

В открывшемся окне выберите пункт Мои макросы — Standard и щёлкните на кнопке Создать, расположенной в правой колонке с кнопками.

В новом окне удалите все строки, кроме первой, и вставьте на их место следующий код:
Sub OpenCSV(f)
dim a(1) As new com.sun.star.beans.PropertyValue
a(0).Name = "FilterName"
a(0).Value = "Text - txt - csv (StarCalc)"
a(1).Name = "FilterFlags"
a(1).Value = "59,,76"
StarDesktop.LoadComponentFromURL(ConvertToURL(f), "_blank", 0, a )
End Sub

В строке «a(1).Value = «59,,76»» «59» означает символ точка с запятой, а «76» кодировку — UTF8. Так что если у вас другая кодировка CSV файла или другие разделители, то цифры будут другие. (Спрашивать какие цифры подходят вам нужно не здесь, а в теме, где получил ответ я)

В результате у вас должно получиться что-то типа этого:
OpenOffice.org 3 Calc Создание макроса — Редактирование // MeAndUbuntu.ru

OpenOffice.org 3 Calc Cоздание макроса — Список // MeAndUbuntu.ru

Теперь макрос создан, пора создать скрипт, который бы открывал файл.
В Linux он может иметь любое название, главное не забыть сделать файл исполняемым. Содержимое файла:

soffice -calc "macro:///Standard.Module1.OpenCSV(/home/serg/tmp/test.csv)"

Вместо /home/serg/tmp/test.csv нужно подставить свой полный путь к файлу.

В Windows нужно сначала создать текстовый файл (.txt). Записать в него:

start soffice -calc "macro:///Standard.Module1.OpenCSV(c:\test.csv)"

Вместо c:\test.csv нужно указать полный путь до файла CSV, а этот текстовый файл переименовать в файл с расширением .bat.

Теперь при двойном щелчке на этот файл будет автоматически открываться OpenOffice.org 3 Calc, а в нём готовый для работы CSV файл.

И на последок, ещё раз хотелось бы выразить благодарность г-ну smaharbA за помощь.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Материалы распространяются под лицензией Creative Commons: Атрибуция — Некоммерческое использование — С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported.
Рейтинг@Mail.ru