zapisywanie xls jako csv przy pomocy libreoffice calc

20

Korzystam z LibreOffice 3.5.7.2 ID kompilacji: 350m1 (kompilacja: 2) i chciałbym uruchomić program LibreOffice calc z terminala, aby otworzyć dokument .xls i wysłać go do pliku .csv. Mogę to zrobić za pomocą GUI, po prostu otwierając plik xls i zapisując jako csv i określając delimetr, ale chciałbym móc to zrobić za pośrednictwem terminala.

Badania, które przeprowadziłem:

kiedy biegnę

> man libreoffice

Dostaję:

SYNOPSIS
       libreoffice  [--accept=accept-string]  [--base]  [--calc] [--convert-to
       output_file_extension[:output_filter_name]

który ma polecenie --convert-to output, ale nie jestem do końca pewien, jak mógłby wyglądać przykład tego, próbowałem:

libreoffice --convert-to csv:writer_csv_Export --outdir /Data/ *.xls

jak wspomniano https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi, ale to nie działa.

Eduardo Dennis
źródło
1
libreoffice --headless --convert-to csv --outdir somedir *.xlswydaje się działać. :writer_csv_Exportwydaje się niepotrzebny i może to być również problem /Data/oznaczający katalog wywoływany Dataw katalogu głównym systemu plików, a nie w katalogu domowym. Po prostu pomiń, --outdir DIRa otrzymasz wynik w bieżącym katalogu.
chronitis

Odpowiedzi:

31

libreoffice --headless --convert-to csv --outdir somedir *.xls wydaje się działać.

--headless powstrzymuje Libreoffice przed otwarciem okna, więc po prostu konwertuje pliki, a następnie kończy działanie.

:writer_csv_Exportpo csvwydaje się niepotrzebne.

Może to być również problem /Data/oznaczający katalog o nazwie Dane w katalogu głównym systemu plików, a nie w katalogu domowym. Po prostu pomiń, --outdir DIRa otrzymasz wynik w bieżącym katalogu.

Uwaga:

Zamknij plik xls / xlsx przed uruchomieniem tego polecenia. Jeśli plik jest otwarty, to polecenie nie działa.

chronitis
źródło
1
czy istnieje sposób określenia delimitu w wierszu poleceń? IE zamiast przecinka, potoku?
Eduardo Dennis,
1
Jest w tym błąd ulepszenia, więc prawdopodobnie nie -> libreoffice.org/bugzilla/show_bug.cgi?id=68786
chronitis
ok, nie ma problemu, mam nadzieję, że wkrótce to naprawią :-D
Eduardo Dennis
3
Eksportuje tylko pierwszy arkusz. Czy istnieje sposób na eksport wszystkich arkuszy do osobnych plików?
Grzegorz Wierzowiecki
@GrzegorzWierzowiecki, jak wyjaśniono w odpowiedzi na pytanie Zapytaj Libreoffice , musisz najpierw przekonwertować na XLSX, a następnie na CSV przez xlsx2csv. Do wszystkiego innego służą makra: link - link
Avio