Я использую LibreOffice 5.0.5.2 в Docker-контейнере Ubuntu 15.10 для преобразования произвольных входящих файлов электронных таблиц в канонические файлы 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")
- не обнаруживать специальные числа ("ложь")
- сохранить содержимое ячейки, как показано ("true")
Это работает хорошо, за исключением столбцов, которые содержат определенный текст с начальными нулями. Например, если incoming.csv
это:
"0123456789"
Полученный экспортированный файл выглядит так:
123456789
Насколько я понимаю, если столбец будет помечен как текст при импорте, он сохранит ведущие нули, а затем будет идти в другом направлении, пометка "процитировать все текстовые ячейки" при экспорте сохранит эти сохраненные нули. Но, похоже, это не относится к некоторому набору входных данных.
Например, они сохраняют свои ведущие нули, которые, как я предполагаю, состоят в том, что они содержат нечисловые символы:
0x3E
0 123 456
Используя командную строку, как я могу уговорить LibreOffice, чтобы сохранить ведущие нули во время экспорта?