Skip to content

Преобразование xlsx в csv в Linux с помощью командной строки

Gnumeric - ssconvert

Приложение электронных таблиц Gnumeric поставляется с утилитой командной строки под названием ssconvert, которая может конвертировать между различными форматами электронных таблиц:

$ ssconvert Book1.xlsx newfile.csv
Using exporter Gnumeric_stf:stf_csv

$ cat newfile.csv 
Foo,Bar,Baz
1,2,3
123.6,7.89,
2012/05/14,,
The,last,Line
ssconvert --import-encoding=utf-8 --export-type=Gnumeric_stf:stf_csv [входящий файл] [исходящий файл]
ssconvert 1.xls 1.pdf

libreoffice

Вы можете сделать это с помощью LibreOffice:

libreoffice --headless --convert-to csv $filename --outdir $outdir По непонятным мне причинам вам может потребоваться запустить это с помощью sudo.

Bash

Bash ускорит любую из команд выше:

for i in `ls`; do ssconvert --export-type=Gnumeric_stf:stf_csv $i $i.csv; done

Или

for i  in *.xlsx; do  libreoffice --headless --convert-to csv "$i" ; done

Debian и Ubuntu есть xlsx2csv пакет

$ apt-cache search xlsx2csv
xlsx2csv - convert xslx files to csv format

Но нажо иметь ввиду:

  -c OUTPUTENCODING, --outputencoding OUTPUTENCODING
                        encoding of output csv ** Python 3 only ** (default:
                        utf-8)

И если у вас уже есть среда рабочего стола, я уверен, что Gnumeric / LibreOffice будет работать хорошо, но на автономном сервере (таком как Amazon Web Services) они требуют десятков зависимостей, которые вам также необходимо установить. Хотя

$ easy_install xlsx2csv
$ xlsx2csv file.xlsx > newfile.csv

На установку ушло 2 секунды и работает как шарм. Если у вас несколько листов, вы можете экспортировать все сразу или по одному:

$ xlsx2csv file.xlsx --all > all.csv
$ xlsx2csv file.xlsx --all -p '' > all-no-delimiter.csv
$ xlsx2csv file.xlsx -s 1 > sheet1.csv

Используйте csvkit

csvkit - это набор инструментов командной строки для преобразования и работы с CSV, королем табличных форматов файлов.

Он вдохновлен pdftk, GDAL и оригинальным инструментом csvcut Джо Гермуски и Аарона Бикоффе.

Важные ссылки:

Документация: https://csvkit.rtfd.org/ Репозиторий: https://github.com/wireservice/csvkit Проблемы: https://github.com/wireservice/csvkit/issues Схемы: https://github.com/wireservice/ffs

in2csv data.xlsx > data.csv Подробности смотрите в их отличных документах.