Преобразование ODS в CSV с помощью командной строки при запущенном экземпляре Libreoffice

#csv #data-conversion #libreoffice #ods

#csv #преобразование данных #libreoffice #ods

Вопрос:

Я работаю с файлом ODS в LibreOffice, и время от времени я хочу преобразовать его в CSV из командной строки. Я нашел для этого два инструмента: libreoffice --headless --convert-to csv и unoconv -f csv , но ни один из них не работает, когда запущен экземпляр пользовательского интерфейса LibreOffice.

Есть ли способ преобразовать файл ODS в CSV из командной строки во время запуска экземпляра пользовательского интерфейса LibreOffice?

Комментарии:

1. @tohuwawohu Нет, я не получаю никаких сообщений об ошибках, потому что оба libreoffice --headless и unoconv работают так, как задумано. Они не предназначены для работы одновременно с запуском пользовательского интерфейса LibreOffice.

Ответ №1:

Чтобы преобразовать csv в командной строке во время работы LibreOffice, просто пропустите --headless параметр. Следующая команда (выполняемая в PowerShell) работала для меня даже во время C:TEMPUntitled1.ods resp. /tmp/Untitled1.ods был открыт в LibreOffice Calc:

Windows 10 (протестирована с LibreOffice 7.0.1)

amp; 'C:Program FilesLibreOfficeprogramsoffice.exe' --convert-to csv --outdir C:TEMP .Untitled1.ods

Или аналогично, если текущий рабочий каталог C:Program FilesLibreOfficeprogram :

.soffice --convert-to csv --outdir C:TEMP C:TEMPUntitled1.ods

Linux (протестирован с LibreOffice 6.4.6)

soffice --convert-to csv --outdir /tmp/ /tmp/Untitled1.ods

В Linux вы могли бы в качестве альтернативы использовать libreoffice команду вместо soffice (похоже, специфичную для Linux …):

libreoffice --convert-to csv --outdir /tmp/ /tmp/Untitled1.ods

Во всех случаях Untitled.csv был создан в ожидаемом месте.

Комментарии:

1. Ах, документы параметра —headless: «Запускается в «безголовом режиме», что позволяет использовать приложение без пользовательского интерфейса». (Это точные слова 🙂 )

2. И что еще интереснее: описание --convert-to флага таково: «(…) Это подразумевает -безголовый».

3. Обратите внимание на префикс amp; в Windows, если используете powershell. Это не обязательно, если используется «старая» командная строка.

Ответ №2:

Протестировано с macOS :

 /Applications/LibreOffice.app/Contents/MacOS/soffice --convert-to csv myspread.ods 
  

Это записало файл myspread.csv в тот же каталог