guardar xls como csv con libreoffice calc

20

Estoy usando LibreOffice 3.5.7.2 Build ID: 350m1 (Build: 2) y me gustaría ejecutar LibreOffice calc desde el terminal para abrir un documento .xls y enviarlo a .csv. Puedo hacer esto a través de la GUI simplemente abriendo el archivo xls y guardando como csv y especificando el delímetro, pero me gustaría poder hacerlo a través del terminal.

Investigación que he hecho:

cuando corro

> man libreoffice

Yo obtengo:

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

que tiene un comando --convertir a salida pero no estoy exactamente seguro de cómo se vería un ejemplo de eso, intenté:

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

como https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi menciona pero no funciona.

Eduardo Dennis
fuente
1
libreoffice --headless --convert-to csv --outdir somedir *.xlsparece funcionar :writer_csv_Exportparece ser innecesario, y también podría ser un problema que /Data/significa un directorio llamado Dataen la raíz del sistema de archivos, no en su directorio de inicio. Simplemente omita --outdir DIRy obtendrá la salida en el directorio actual.
cronitis

Respuestas:

31

libreoffice --headless --convert-to csv --outdir somedir *.xls parece funcionar

--headless evita que Libreoffice abra una ventana, por lo que solo convierte sus archivos y luego sale.

:writer_csv_Exportdespués csvparece ser innecesario.

También podría ser un problema que /Data/significa un directorio llamado Datos en la raíz del sistema de archivos, no en su directorio de inicio. Simplemente omita --outdir DIRy obtendrá la salida en el directorio actual.

Nota:

Cierre su archivo xls / xlsx antes de ejecutar este comando. Si se abre el archivo, este comando no funciona.

cronitis
fuente
1
¿Hay alguna manera de especificar el delimitador en la línea de comando? IE en lugar de coma, tubería?
Eduardo Dennis
1
Hay un error de mejora para esto, así que presumiblemente no -> libreoffice.org/bugzilla/show_bug.cgi?id=68786
cronitis
ok no hay problema, espero que lo arreglen pronto :-D
Eduardo Dennis
3
Exporta solo la primera hoja. ¿Hay alguna manera de exportar todas las hojas en archivos separados?
Grzegorz Wierzowiecki
@GrzegorzWierzowiecki como se explica en esta respuesta a Ask Libreoffice , primero deberá convertir a XLSX y luego a CSV a través de xlsx2csv. Para todo lo demás hay macros: enlace - enlace
Avio