Je me rends compte que ce n'est pas une question entièrement liée à Unix / Linux. Mais comme c'est quelque chose que je ferai sur Linux, j'espère que quelqu'un aura une réponse.
J'ai un fichier Excel en ligne ( .xlsx
) qui est mis à jour périodiquement (par quelqu'un d'autre). Je veux écrire un script et le mettre en tant que cronjob afin de traiter cette feuille Excel. Mais pour ce faire, je dois convertir cela en un fichier texte (donc a .csv
) avec des colonnes séparées par des points-virgules. Il ne peut malheureusement pas être séparé par des virgules car certaines colonnes contiennent des virgules. Est-il possible de faire cette conversion à partir du shell? J'ai installé Open Office et je peux le faire en utilisant son interface graphique, mais je veux savoir s'il est possible de le faire à partir de la ligne de commande. Merci!
PS: J'ai aussi une machine Mac, donc si une solution peut fonctionner, c'est bien aussi. :)
la source
;
comme séparateur.https://github.com/dilshod/xlsx2csv
A bien fonctionné pour moi. Environ 85 Mo de fichier XLSX converti en environ 3 minutes sur un SSD Mac Book Pro.
la source
$ python xlsx2csv.py -d ";" my.xlsx my.csv
et a bien fonctionné pour définir le déliminateur, merci +!J'utilise xls2csv de Perl pour convertir des
xls
fichierscsv
.Je ne sais pas si cela fonctionne
xlsx
aussi.Sur:
c'est pourquoi la citation a été introduite:
la source
awk
scripts. Et c'est juste plus facile de passer le point-virgule comme séparateur de champawk
. Je pourrais chercher des virgules dans les guillemets pour les remplacer par autre chose ... maintenant c'est une autre question :)J'utilise PHP. Installez simplement la bibliothèque PHPExel depuis http://phpexcel.codeplex.com/ et vous aurez probablement aussi besoin de fonctions XML.
Voici mon code:
Vous pouvez annuler le processus ou utiliser un format Excel / CSV différent. Regardez les différents fichiers php dans le répertoire PHPExcel.
la source