Percebo que essa não é uma questão totalmente unix / linux. Mas como isso é algo que farei no linux, espero que alguém tenha uma resposta.
Eu tenho um arquivo excel online ( .xlsx
) que é atualizado periodicamente (por outra pessoa). Eu quero escrever um script e colocá-lo como um cronjob para processar essa planilha do excel. Mas, para fazer isso, preciso convertê-lo em um arquivo de texto (então a .csv
) com colunas separadas por ponto e vírgula. Infelizmente, não pode ser separado por vírgula, pois algumas colunas possuem vírgulas. É possível fazer essa conversão do shell? Eu tenho o Open Office instalado e posso fazer isso usando sua GUI, mas quero saber se é possível fazer isso na linha de comando. Obrigado!
PS: Eu também tenho uma máquina Mac; portanto, se alguma solução puder funcionar lá, isso também será bom. :)
fonte
;
como separador.https://github.com/dilshod/xlsx2csv
Funcionou bem para mim. Um arquivo XLSX de 85 MB foi convertido em cerca de 3 minutos em um SSD do Mac Book Pro.
fonte
$ python xlsx2csv.py -d ";" my.xlsx my.csv
funcionou bem e a capacidade de definir o deliminador, obrigado +!Estou usando o xls2csv do Perl para converter
xls
arquivos emcsv
.Não tenho certeza se funciona com isso
xlsx
também.Sobre:
é por isso que a citação foi introduzida:
fonte
awk
scripts. E é mais fácil passar ponto e vírgula como o separador de camposawk
. Eu poderia procurar vírgulas entre aspas para substituí-los com outra coisa ... agora que é uma outra questão :)Eu uso PHP. Basta instalar a biblioteca PHPExel em http://phpexcel.codeplex.com/ e provavelmente você também precisará de funções XML.
Este é o meu código:
Você pode reverter o processo ou usar diferentes formatos Excel / CSV. Veja os diferentes arquivos php no diretório PHPExcel.
fonte