7
votes

Extrayez par programme les données d'une feuille de calcul Excel

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:

http://www.econ.yale.edu/~hiller/ DATA / IE_DATA.XLS

et spécifiquement la troisième feuille de cette feuille de calcul (les deux premiers étant des graphiques).


1 commentaires

Voici une belle compilation de certains packages Python, ainsi que des descriptions d'une doublure qui pourraient être utiles: python-excel.org < / a>


10 Réponses :


1
votes

J'ai peut-être trouvé une réponse acceptable déjà:

XLS2CSV

mais intéressé d'entendre quelles autres options il y a ou sur des outils dans d'autres langues.


0 commentaires

8
votes

Peut-être XLRD fera le travail (en python)

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.


1 commentaires

À droite, la sortie de CSV n'est pas une grosse affaire. Merci!



1
votes

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é.


3 commentaires

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.




1
votes

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.s d'opinionated: Si vous ne connaissez aucune des langues, apprenez simplement Python et utilisez XLRD .


1 commentaires

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.



4
votes

Vous pouvez utiliser pyexcelerator en python.

Ce code (inclus dans le Exemples Dossier de Pyexcelerator comme xls2csv.py ) extrait toutes les feuilles des feuilles de calcul et les distribuent sur stdout comme CSV.

vous. Peut facilement changer le code pour faire ce que vous voulez.

La chose cool à propos de Pyexcelerator est que vous pouvez également l'utiliser pour écrire / créer des fichiers Excel XLS, sans que Excel est installé. xxx


3 commentaires

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 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 . 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



2
votes

dans Ruby, voici le code que j'utilise: (nécessite l'excellent gem de parseexcel) exiger 'parseexcel' xxx


1 commentaires

Plus d'explications sont également trouvées ici: CodeeFeLog.com/parseexcel-Ruby- utilisé-to-lecture-excel



4
votes

Pour Ruby, la feuille de calcul est excellente pour lire en écriture Modifier, ... Excell Fichiers

https://github.com/zdavatz/spreadsheet


0 commentaires

3
votes

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")


2 commentaires

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]



1
votes

avec Bibliothèque Pyexcel , vous pouvez le faire:

$ pyexcel transcode --sheet-name 'Data' /your/home/Downloads/ie_data.xls ie_data.csv


0 commentaires