Trabajando con varios archivos de datos en formato de Excel (en mi máquina Linux, por su puesto), me encontré con la necesidad de crear un programita que convirtiera en bloque (”batch”) todos esos archivos al formato CSV (”comma separated values”). Esa conversión facilitaria la automatización de otros procesos por lo cuales tenía que hacer pasar los datos. Además, el formato CSV es reconocido por cualquier programa decente de análisis de datos o de manejo de bases de datos, en Linux, Mac OS o Windows.
Teniendo la experiencia de que muchos programas para Linux pueden correrse desde la línea de comandos además de usarlos con su interfaz gráfica, supuse que Gnumeric tendría alguna forma de permitirme realizar la conversión que deseaba sin tener que levantar el programa completo. Gnumeric es un manejador o gestor de hojas electrónicas de cálculo (”spreadsheets”) equivalente en propósito a Excel. Es más liviano que el Calc de OpenOffice y por eso lo uso para previsualizar archivos de datos gigantezcos.
Gnumeric incluye en su instalación una utilidad llamada ssconvert con la cual se pueden hacer conversiones de archivos a otros formatos desde la consola. Su nombre no da indicación de su relación con Gnumeric.
Para mi necesidad particular, el programa en bash que escribí en la consola para cambiar un grupo de archivos de Excel en CSV fue:
for xls in *.xls
do
ssconvert $xls $xls.csv
done
El programa ssconvert utiliza la extensión de los archivos que recibe como argumentos para determinar cuál conversión realizar. Este es el listado de conversiones que puede hacer:
eocasio:$ ssconvert –list-exporters
ID | Description
Gnumeric_OpenCalc:openoffice | OpenDocument/OpenOffice _UNFINISHED_ (*.ods)
Gnumeric_Excel:xlsx | MS Excel ™ 12
Gnumeric_Excel:excel_dsf | MS Excel ™ 97/2000/XP & 5.0/95
Gnumeric_Excel:excel_biff8 | MS Excel ™ 97/2000/XP
Gnumeric_Excel:excel_biff7 | MS Excel ™ 5.0/95
Gnumeric_sylk:sylk | MultiPlan (SYLK)
Gnumeric_html:roff | TROFF (*.me)
Gnumeric_html:latex_table | LaTeX 2e (*.tex) table fragment
Gnumeric_html:latex | LaTeX 2e (*.tex)
Gnumeric_html:xhtml_range | XHTML range - for export to clipboard
Gnumeric_html:xhtml | XHTML (*.html)
Gnumeric_html:html40frag | HTML (*.html) fragment
Gnumeric_html:html40 | HTML 4.0 (*.html)
Gnumeric_html:html32 | HTML 3.2 (*.html)
Gnumeric_dif:dif | Data Interchange Format (*.dif)
Gnumeric_stf:stf_csv | Comma separated values (CSV)
Gnumeric_stf:stf_assistant | Text export (configurable)
Gnumeric_XmlIO:sax | Gnumeric XML (*.gnumeric)
Más artículos como este en:
Algunos artículos relacionados: