Me doy cuenta de que esta no es una pregunta totalmente relacionada con Unix / Linux. Pero como esto es algo que haré en Linux, espero que alguien tenga una respuesta.
Tengo un archivo de Excel en línea ( .xlsx
) que se actualiza periódicamente (por otra persona). Quiero escribir un script y ponerlo como un cronjob para procesar esa hoja de Excel. Pero para hacer eso, necesito convertir eso en un archivo de texto (entonces a .csv
) con columnas separadas por punto y coma. Desafortunadamente, no se puede separar por comas, ya que algunas columnas tienen comas. ¿Es posible hacer esta conversión desde shell? Tengo Open Office instalado y puedo hacer esto usando su GUI, pero quiero saber si es posible hacerlo desde la línea de comandos. ¡Gracias!
PD: También tengo una máquina Mac, así que si alguna solución puede funcionar allí, eso también es bueno. :)
fuente
;
como separador.https://github.com/dilshod/xlsx2csv
Funcionó bien para mí. Aproximadamente 85 MB de archivo XLSX convertido en aproximadamente 3 minutos en una Mac Book Pro SSD.
fuente
$ python xlsx2csv.py -d ";" my.xlsx my.csv
funcionó bien y la capacidad de definir el deliminador, gracias +!Estoy usando xls2csv de Perl para convertir
xls
archivoscsv
.No estoy seguro si funciona con
xlsx
.Acerca de:
por eso se ha introducido la cita:
fuente
awk
scripts. Y es más fácil pasar el punto y coma como separador de campoawk
. Podría buscar comas dentro de las comillas para reemplazarlas con algo más ... ahora esa es otra pregunta :)Yo uso PHP Simplemente instale la biblioteca PHPExel desde http://phpexcel.codeplex.com/ y probablemente también necesite funciones XML.
Este es mi código:
Puede revertir el proceso o usar un formato diferente de Excel / CSV. Mire los diferentes archivos php en el directorio PHPExcel.
fuente