Конвертировать файл в указанные форматы при помощи командной строки очень просто:
Входные параметры и пояснение:
Разделитель полей: «Точка с запятой» или semicolons. Значение для командной строки 59
Кодировка выходного файла: Системная по умолчанию. Значение для командной строки 0
Взять значения полей в кавычки: Значение для командной строки 34
Перовая строка: Идёт с первой строки. Значение для командной строки 1
Формат команды для конвертации в csv:
1 2 3 |
путь_до_libreoffice --convert-to csv:"Text - txt - csv (StarCalc)":"набор_параметров_указанных_выше_через_запятую" полный_путь_до_файла.xls --outdir полный_путь_до_выходной_папки |
И сама команда конвертации в примере для Ubuntu 18.04 с установленным Libreoffice
1 2 3 |
libreoffice --convert-to csv:"Text - txt - csv (StarCalc)":"59,34,0,1" /home/coderun/Загрузки/123/target_file.xlsx --outdir /home/coderun/Загрузки/123/ |
В результате исполнения команды, на выходе будет файл target_file.csv с разделителем «точка с запятой».
Если вам нужные свои параметры файла, тогда вы можете заменить цифирные параметры на коды из ascii таблицы. Или если вам нужно опустить один из параметров, то просто оставьте пустое значение. Например что бы не обрамлять значения полей в кавычки и всё прочее оставить так же — команда будет такой «,34,0,1»
Полно описание параметров для конвертации находится на оф. сайте openoffice https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
Подобное решение удобно для запуска как и при помощи других языков программирования, так и из программ учёта таких как 1С