#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 в тот же каталог