Я использую LibreOffice 5.0.5.2 в контейнере Ubuntu 15.10 docker для преобразования произвольных входящих файлов электронных таблиц в канонические CSV-файлы:
/usr/lib/libreoffice/program/soffice.bin
--convert-to 'csv:Text - txt - csv (StarCalc):44,34,76,1,1/2/2/2/3/2,1031,true,false,true'
--outdir '/tmp/outgoing'
'incoming.csv'
как я понимаю документация, эта командная строка должна точно конвертировать электронные таблицы в CSV, используя:
,
как разделитель полей ("44")"
как символ вложения ("34")- UTF-8 как входящая кодировка ("76")
- начать с первой строки в файле ("1")
- форматировать столбцы 1, 2 и 3 как текст ("1/2/2/2/3/2"),
- использовать UTF-8 имеет исходящую кодировку ("1031")
- процитировать все текстовые ячейки ("true")
- не обнаруживать специальные числа ("false")
- сохранить содержимое ячейки как показано ("true")
это работает хорошо, за исключением столбцов, содержащих определенный текст с ведущими нулями. Например, если incoming.csv
это это:
"0123456789"
результирующий экспортированный файл выглядит так:
123456789
Я понимаю, что если столбец помечен как текст на импорт, что составит сохранить ведущие нули, а затем идем в другую сторону, отмечая "цитировать все текстовые ячейки" на экспорт сохранит эти сохраненные нули. Но это, по-видимому, не относится к некоторому набору входных данных.
например, эти держат свои лидирующие нули, которые я полагаю, потому что они содержат нечисловые символы:
0x3E
0 123 456
С помощью командной строки, как я могу уговорить LibreOffice сохранить лидирующие нули во время экспорта?