2016-06-15 4 views
2

Я пытаюсь преобразовать файлы xls в каталог в формат csv, используя soffice.Преобразование xls в разделительную запятую csv с командной строкой soffice

soffice --headless --convert-to csv * 

Он дает раздельную версию (очевидно). Теперь я хочу получить csv с разделителями с запятой.

Я думал о замене запятых полуколониями с помощью команды vim.

:%s/,/;/g 

Но это неверно, поскольку оно заменяет запятые, которые хранятся намеренно в исходном контенте. Он должен делиться при преобразовании из xls в csv.

Как получить csv с разделителями с разделителями с двоеточием с командной строкой soffice?

+0

'soffice --convert-to csv:" Text - txt - csv (StarCalc) ": 59,34,0,1,1 -outdir/some/path *'. Дополнительную информацию см. В [wiki] (https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options). – lcd047

+1

@ lcd047, _: «Текст - txt - csv (StarCalc)» _ предназначен для фильтрации входных файлов, а номера - для выбора формата кодирования. В [wiki] нет опции (https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options) для изменения разделителя. – Jarvis

+2

Вы действительно попробовали указанную мной командную строку? Прочтите снова раздел [Параметры фильтра для CSV-фильтра] (https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter). Сепаратор - это первое число. '44' в wiki - это (десятичный) код ASCII для запятой, а' 59' - код ASCII для точки с запятой. – lcd047

ответ

2

Наконец-то я получил ответ. Добавление output_filter_options работало как шарм.

--convert-to output_file_extension[:output_filter_name[:output_filter_options]] [--outdir output_dir] files 

Этот wiki link помог. Вот что я сделал,

soffice --headless --convert-to csv:"Text - txt - csv (StarCalc)":59,34,0,1,1 *.xls 

Примечание: Это работает с Libre офис 4.3 или более высокой версии.