enregistrer xls en csv avec libreoffice calc

20

J'utilise LibreOffice 3.5.7.2 Build ID: 350m1 (Build: 2) et je voudrais exécuter LibreOffice calc depuis le terminal pour ouvrir un document .xls et le sortir vers .csv. Je peux le faire via l'interface graphique en ouvrant simplement le fichier xls et en enregistrant en tant que csv et en spécifiant le délimiteur, mais je voudrais pouvoir le faire via le terminal.

Recherches que j'ai faites:

quand je cours

> man libreoffice

Je reçois:

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

qui a une commande --convert-to output mais je ne sais pas exactement à quoi ressemblerait un exemple, j'ai essayé:

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

comme https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi mentionne mais cela ne fonctionne pas.

Eduardo Dennis
la source
1
libreoffice --headless --convert-to csv --outdir somedir *.xlssemble fonctionner. :writer_csv_Exportsemble inutile, et cela pourrait également être un problème qui /Data/signifie un répertoire appelé Dataà la racine du système de fichiers, pas dans votre répertoire personnel. Omettez simplement --outdir DIRet vous obtiendrez la sortie dans le répertoire courant.
chronite

Réponses:

31

libreoffice --headless --convert-to csv --outdir somedir *.xls semble fonctionner.

--headless empêche Libreoffice d'ouvrir une fenêtre, il ne fait que convertir vos fichiers, puis se ferme.

:writer_csv_Exportaprès csvsemble inutile.

Cela peut également être un problème qui /Data/signifie un répertoire appelé Data à la racine du système de fichiers, pas dans votre répertoire personnel. Omettez simplement --outdir DIRet vous obtiendrez la sortie dans le répertoire courant.

Remarque:

Fermez votre fichier xls / xlsx avant d'exécuter cette commande. Si le fichier est ouvert, cette commande ne fonctionne pas.

chronite
la source
1
existe-t-il un moyen de spécifier le délimètre en ligne de commande? IE au lieu de virgule, pipe?
Eduardo Dennis
1
Il existe un bug d'amélioration pour cela, donc probablement pas -> libreoffice.org/bugzilla/show_bug.cgi?id=68786
chronitis
ok pas de problème, j'espère qu'ils le répareront bientôt :-D
Eduardo Dennis
3
Il exporte uniquement la première feuille. Existe-t-il un moyen d'exporter toutes les feuilles dans des fichiers séparés?
Grzegorz Wierzowiecki
@GrzegorzWierzowiecki comme expliqué dans cette réponse Ask Libreoffice, vous devrez d'abord convertir en XLSX puis en CSV via xlsx2csv. Pour tout le reste, il y a des macros: lien - lien
Avio