сохранение xls как csv с помощью libreoffice calc

20

Я использую LibreOffice 3.5.7.2 ID сборки: 350m1 (Build: 2) и хотел бы запустить LibreOffice calc из терминала, чтобы открыть документ .xls и вывести его в .csv. Я могу сделать это через графический интерфейс, просто открыв файл xls и сохранив его как csv и указав разделитель, но я бы хотел сделать это через терминал.

Исследование, которое я сделал:

когда я бегу

> man libreoffice

Я получил:

SYNOPSIS
       libreoffice  [--accept=accept-string]  [--base]  [--calc] [--convert-to
       output_file_extension[:output_filter_name]

у которого есть команда --convert-to output, но я не совсем уверен, как будет выглядеть пример этого, я попытался:

libreoffice --convert-to csv:writer_csv_Export --outdir /Data/ *.xls

как упоминает https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi, но это не работает.

Эдуардо Деннис
источник
1
libreoffice --headless --convert-to csv --outdir somedir *.xlsпохоже на работу. :writer_csv_Exportкажется ненужным, и это также может быть проблемой, которая /Data/означает, что каталог Dataвызывается в корне файловой системы, а не в вашем домашнем каталоге. Просто пропустите, --outdir DIRи вы получите вывод в текущем каталоге.
хронит

Ответы:

31

libreoffice --headless --convert-to csv --outdir somedir *.xls похоже на работу.

--headless останавливает Libreoffice от открытия окна, поэтому он просто конвертирует ваши файлы и затем завершает работу.

:writer_csv_Exportпосле csvкажется ненужным.

Это также может быть проблемой, которая /Data/означает, что каталог с именем Data находится в корневом каталоге файловой системы, а не в вашем домашнем каталоге. Просто пропустите, --outdir DIRи вы получите вывод в текущем каталоге.

Замечания:

Перед запуском этой команды закройте файл xls / xlsx. Если файл открыт, эта команда не работает.

chronitis
источник
1
Есть ли способ указать разделитель в командной строке? IE вместо запятой, труба?
Эдуардо Деннис
1
Для этого есть ошибка улучшения, поэтому, вероятно, нет -> libreoffice.org/bugzilla/show_bug.cgi?id=68786
хронит
ок, нет проблем, надеюсь, они исправят это скоро :-D
Эдуардо Деннис
3
Экспортирует только первый лист. Есть ли способ экспортировать все листы в отдельные файлы?
Гжегож Вежовецкий
@GrzegorzWierzowiecki, как объяснено в этом ответе на вопрос Ask Libreoffice, вам сначала нужно конвертировать в XLSX, а затем в CSV через xlsx2csv. Для всего остального есть макросы: ссылка - ссылка
Avio