¿Conversión por lotes de xlsx a xls a través de CLI?

Estoy tratando de convertir un montón de archivos xlsx a xls (porque otro software <cough>matlab <cough>puede procesar xls pero no xlsx en la mac).

Probé unoconv pero tiene problemas (que aparentemente se derivan de que el objeto compartido de pyuno no es compatible con 64 bits, incluso tratando de anular esto con

$ VERSIONER_PYTHON_PREFER_32_BIT=yes ./unoconv

todavía muere, esta vez con Fatal Python error: Interpreter not initialized (version mismatch?)lo que supongo que tiene que ver con una falta de coincidencia entre el python usado con OpenOffice y el enviado con MacOS X).

Mientras tanto, estoy usando el "Convertidor XML abierto" proporcionado por Microsoft, pero realmente me gustaría encontrar una manera de hacerlo con las herramientas FOSS y a través del shell. ¿Algunas ideas?

Oh, estoy corriendo en Snow Leopard si eso hace alguna diferencia.

Respuestas (1)

No he probado esto con archivos .xls(x) por ejemplo, pero he usado LibreOffice para convertir por lotes archivos .doc(x) a .pdf usando la convert-toopción. OpenOffice tiene las mismas opciones, afaik.

Marque la helpopción para su aplicación. En mi caso fue:

/Applications/LibreOffice.app/Contents/MacOS/soffice -help

En particular, para mi cambio a archivos .pdf, hice algo como esto:

/Applications/LibreOffice.app/Contents/MacOS/soffice -headless -convert-to pdf:writer_pdf_Export *.doc

La -headlessbandera solo evita que se cargue toda la GUI. Es probable que haya una extensión de archivo de salida similar y un filtro (el pdf:writer_pdf_Export) para su caso .xls(x).

OK, gracias-- OpenOffice 3.3 no parece tener el -convert-to (y -headless reclamaciones para ser reconocidas, pero aún hace que la GUI se active). LibreOffice hace el truco (aunque todavía parece estar gastando tiempo activando un montón de cosas en segundo plano). Usé esta línea de comando:$ /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to xls 'test 1873.xlsx'
El ícono de LibreOffice aparecerá en el dock, pero no consigo que cargue un montón de cosas. Además, para mi instalación, las opciones no son opciones largas: solo tienen un -carácter, no dos. Es interesante que OpenOffice no tenga estas opciones. Probablemente haya una manera de definir una macro en OO y luego llamar a esa macro desde la línea de comando, pero no estoy seguro.
Lo consigo cargando cosas (mucho disco girando y tiempo transcurrido) y realmente cambiando el enfoque visual al espacio (escritorio virtual) donde tengo OO anclado, no es intolerable, pero no es lo que hubiera esperado "sin cabeza". Oh, esto está en LibreOffice 3.4.5 OOO340m1 (Compilación: 502)
Interesante. Estoy usando LibreOffice 3.3 330m19 (Compilación: 401). No estoy seguro de qué ha cambiado, pero al menos ahora funciona para ti :).