salvando xls come csv con libreoffice calc


20

Sto usando LibreOffice 3.5.7.2 Build ID: 350m1 (Build: 2) e vorrei eseguire LibreOffice calc dal terminale per aprire un documento .xls e inviarlo a .csv. Posso farlo tramite la GUI semplicemente aprendo il file xls e salvandolo come CSV e specificando il delimitatore, ma vorrei poterlo fare tramite il terminale.

Ricerche che ho fatto:

quando corro

> man libreoffice

Ottengo:

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

che ha un comando --convert-to output ma non sono esattamente sicuro di come sarebbe un esempio, ho provato:

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

come https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi menziona ma non funziona.


1
libreoffice --headless --convert-to csv --outdir somedir *.xlssembra funzionare. :writer_csv_Exportsembra non essere necessario e potrebbe anche essere un problema che /Data/significa una directory chiamata Datanella directory principale del file system, non nella directory home. Ometti --outdir DIRe otterrai l'output nella directory corrente.
cronite,

Risposte:


31

libreoffice --headless --convert-to csv --outdir somedir *.xls sembra funzionare.

--headless impedisce a Libreoffice di aprire una finestra, quindi converte i tuoi file e poi esce.

:writer_csv_Exportdopo csvsembra non essere necessario.

Potrebbe anche essere un problema che /Data/significa una directory denominata Data nella radice del filesystem, non nella home directory. Ometti --outdir DIRe otterrai l'output nella directory corrente.

Nota:

Chiudi il tuo file xls / xlsx prima di eseguire questo comando. Se il file è aperto questo comando non funziona.


1
c'è un modo per specificare delimitatore nella riga di comando? IE invece di virgola, pipe?
Eduardo Dennis,

1
Esiste un bug di miglioramento per questo, quindi presumibilmente no -> libreoffice.org/bugzilla/show_bug.cgi?id=68786
cronite

ok nessun problema, si spera che lo risolvano presto MrGreen
Eduardo Dennis

3
Esporta solo il primo foglio. C'è un modo per esportare tutti i fogli in file separati?
Grzegorz Wierzowiecki,

@GrzegorzWierzowiecki come spiegato in questa risposta Chiedi a Libreoffice dovrai prima convertire in XLSX e poi in CSV tramite xlsx2csv. Per tutto il resto ci sono macro: link - link
Avio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.