Y a-t-il un moyen simple, en utilisant un utilitaire commun de langue de script UNIX (Perl / Python / Ruby) ou de commande de commande, pour convertir un fichier feuille de calcul Excel en CSV? Plus précisément, celui-ci: p>
http://www.econ.yale.edu/~hiller/ DATA / IE_DATA.XLS P>
et spécifiquement la troisième feuille de cette feuille de calcul (les deux premiers étant des graphiques). P>
10 Réponses :
J'ai peut-être trouvé une réponse acceptable déjà: p>
XLS2CSV P>
mais intéressé d'entendre quelles autres options il y a ou sur des outils dans d'autres langues. P>
Peut-être XLRD fera le travail (en python) p>
Edit: Je devrais vraiment apprendre à lire des questions. Mais écrire CSV ne devrait pas être un problème énorme, alors peut-être que vous pouvez réellement l'utiliser. P>
À droite, la sortie de CSV n'est pas une grosse affaire. Merci!
Pour Python, il existe un certain nombre d'options, voir ici , ici et ici . Notez que la dernière option fonctionnera uniquement sur Windows avec Excel installé. P>
Pyxlreader semble ne pas avoir été maintenue depuis 2005, a un bogue étonnant exceptionnel dans le tracker Sourceforge (omettes, tous les numéros présentés comme entiers) plus quelques problèmes supplémentaires que j'ai trouvés dans quelques minutes de jeu avec celui-ci (accidents sur de grands fichiers , parfois imprime "fcukdate" (sans blague!) Lorsqu'il y a des dates dans les données, le temps pris est au moins 6 fois celui de XLRD et est peut-être O (n ** 2), la mémoire utilisée est au moins 7 fois celle de XLRD ). Utilisez-vous cela très vous-même?
Non, j'ai brièvement utilisé XLRD, mais j'ai tendance à stocker des données comme CSV et de travailler à partir de cela. J'ai eu une critique en favoris de ces trois sites Web, alors j'ai pensé que cela pourrait être utile.
Une critique? Je ne pouvais pas trouver une telle chose à utiliser Google. S'il vous plaît poster le lien.
Il y a une très bonne bibliothèque de Perl pour la lecture XLS: tableur :: parseexcel a >. P>
+1 utilisé moi-même plusieurs années; Cela a définitivement le travail.
Les options existent pour les trois langues. La question est - laquelle vous connaissez-vous le plus? C'est la langue que vous devez utiliser, à coup sûr. Et si vous ne connaissez pas non plus, cette application n'est pas vraiment un excellent exemple de cueillette entre les langues. P>
P.s d'opinionated: Si vous ne connaissez aucune des langues, apprenez simplement Python et utilisez XLRD code>. P>
Oh, je ne l'entendais pas comme une question de guerre de langue ou quoi que ce soit. Juste besoin de faire cette tâche et était heureuse d'utiliser toute la langue qui facilite la tâche.
Vous pouvez utiliser pyexcelerator en python.
Ce code (inclus dans le vous. Peut facilement changer le code pour faire ce que vous voulez. p> La chose cool à propos de Pyexcelerator est que vous pouvez également l'utiliser pour Exemples CODE> Dossier de Pyexcelerator comme
xls2csv.py code>) extrait toutes les feuilles des feuilles de calcul et les distribuent sur
stdout code> comme CSV. P>
Que font ces "CP1251" et "CP866"? Que se passera-t-il s'il y a des dates dans les données? Pourquoi utilise-t-il Alist.extend ([quelque chose]) au lieu d'Alist.append (quelque chose)? Pourquoi utilise-t-il ','. Joindre (rangée) au lieu d'utiliser le module CSV ?? Es-tu sérieux???
@John: Je viens de copier l'exemple de Pyexcelerator. Je pense que le point de l'exemple lit le fichier XLS et non la partie de génération CSV. Ça marche. Vous pouvez le modifier et l'améliorer au besoin.
@nosklo: il ne fonctionne pas b> si vous avez des dates dans vos données. En général, en utilisant Pyexcelerator pour écrire des fichiers XLS, c'est plutôt Uncool B>. Il n'est pas maintenu régulièrement. Les rejets avant la brève résurrection de maintenance autour de Pâques 2009 ont des bugs. Utilisez XLWT (une fourchette maintenue) pour écrire des fichiers XLS. Utilisez XLRD pour lire des fichiers XLS. Voir http://www.python-excel.org code>
dans Ruby, voici le code que j'utilise: (nécessite l'excellent gem de parseexcel)
exiger 'parseexcel'
Plus d'explications sont également trouvées ici: CodeeFeLog.com/parseexcel-Ruby- utilisé-to-lecture-excel
Pour Ruby, la feuille de calcul est excellente pour lire en écriture Modifier, ... Excell Fichiers P>
Ceci est assez tard sur le jeu, mais je pensais ajouter une autre option via Ruby à l'aide du gemme "ROO":
require 'rubygems' require 'roo' my_excel_file = Excelx.new("path/to/my_excel_file.xlsx") my_excel_file.default_sheet = my_excel_file.sheets[2] my_excel_file.to_csv("path/to/my_excel_file.csv")
Et comment choisir une troisième feuille?
AH Point juste. Avant la ligne "to_csv", définissez la feuille par défaut sur la troisième feuille, c'est-à-dire my_excel_file.default_sheet = my_excel_file.sheets [2]
avec Bibliothèque Pyexcel , vous pouvez le faire:
$ pyexcel transcode --sheet-name 'Data' /your/home/Downloads/ie_data.xls ie_data.csv
Voici une belle compilation de certains packages Python, ainsi que des descriptions d'une doublure qui pourraient être utiles: python-excel.org < / a>