Speichern von XLS als CSV mit libreoffice calc

19

Ich verwende LibreOffice 3.5.7.2 Build-ID: 350m1 (Build: 2) und möchte LibreOffice calc vom Terminal aus ausführen, um ein XLS-Dokument zu öffnen und in CSV auszugeben. Ich kann dies über die GUI tun, indem ich nur die xls-Datei öffne und als csv speichere und den Begrenzer spezifiziere, aber ich würde es gerne über das Terminal tun können.

Forschung, die ich gemacht habe:

wenn ich renne

> man libreoffice

Ich bekomme:

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

Das hat einen Befehl --convert-to output, aber ich bin nicht sicher, wie ein Beispiel dafür aussehen würde. Ich habe versucht:

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

Wie https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi erwähnt, funktioniert dies jedoch nicht.

Eduardo Dennis
quelle
1
libreoffice --headless --convert-to csv --outdir somedir *.xlsscheint zu funktionieren. :writer_csv_ExportScheint unnötig zu sein, und es könnte auch ein Problem sein, /Data/das ein Verzeichnis bedeutet, Datadas im Stammverzeichnis des Dateisystems und nicht in Ihrem Ausgangsverzeichnis aufgerufen wird . Lass es einfach weg --outdir DIRund du erhältst die Ausgabe im aktuellen Verzeichnis.
Chronitis

Antworten:

31

libreoffice --headless --convert-to csv --outdir somedir *.xls scheint zu funktionieren.

--headless verhindert, dass Libreoffice ein Fenster öffnet, konvertiert also nur Ihre Dateien und beendet das Programm.

:writer_csv_Exportafter csvscheint unnötig zu sein.

Dies kann auch ein Problem sein, /Data/das ein Verzeichnis mit dem Namen Data im Stammverzeichnis des Dateisystems und nicht in Ihrem Ausgangsverzeichnis bedeutet. Lass es einfach weg --outdir DIRund du erhältst die Ausgabe im aktuellen Verzeichnis.

Hinweis:

Schließen Sie Ihre XLS / XLSX-Datei, bevor Sie diesen Befehl ausführen. Wenn die Datei geöffnet ist, funktioniert dieser Befehl nicht.

Chronitis
quelle
1
Gibt es eine Möglichkeit, Delimeter in der Befehlszeile anzugeben? IE statt Komma, Pipe?
Eduardo Dennis
1
Es gibt einen Verbesserungsfehler, also vermutlich nicht -> libreoffice.org/bugzilla/show_bug.cgi?id=68786
chronitis
ok kein problem, hoffentlich beheben sie das bald :-D
Eduardo Dennis
3
Es wird nur das erste Blatt exportiert. Gibt es eine Möglichkeit, alle Blätter in separate Dateien zu exportieren?
Grzegorz Wierzowiecki
@GrzegorzWierzowiecki wie in dieser Ask Libreoffice-Antwort erläutert, müssen Sie zuerst auf XLSX und dann auf CSV über konvertieren xlsx2csv. Für alles andere gibt es Makros: Link - Link
Avio