web-dev-qa-db-fra.com

API Excel Python

Est-ce que quelqu'un connaît un moyen d'accéder à MS Excel à partir de Python? Plus précisément, je cherche à créer de nouvelles feuilles et à les remplir avec des données, y compris des formules. 

De préférence, je souhaiterais le faire sous Linux si possible, mais je peux le faire dans un VM s'il n'y a pas d'autre moyen.

21
Jim Jeffries

xlwt et xlrd peuvent lire et écrire des fichiers Excel sans utiliser Excel lui-même:

http://www.python-Excel.org/

28
Thomas K

Longtemps après la question initiale, mais la dernière réponse l'a repoussé en haut de la liste. D'autres pourraient tirer profit de mon expérience d'utilisation de python et d'Excel.

J'utilise un peu Excel et python. Au lieu d’utiliser directement les modules xlrd, xlwt, j’utilise normalement des pandas. Je pense que les pandas utilisent ces modules en tant qu'importations, mais je trouve qu'il est beaucoup plus facile d'utiliser le cadre fourni par les pandas pour créer et lire les feuilles de calcul. La structure Dataframe de Pandas est très "semblable à une feuille de calcul" et rend la vie beaucoup plus facile à mon avis.

L'autre option que j'utilise (pas en réponse directe à votre problème) est DataNitro. Il vous permet d’utiliser python directement dans Excel. Cas d'utilisation différent, mais vous l'utiliseriez là où vous auriez normalement dû écrire du code VBA dans Excel.

5
Joop

il existe une bibliothèque Python pour lire/écrire Excel 2007 xlsx/fichiers xlsm http://pythonhosted.org/openpyxl/

4
Chals

J'ai écrit une classe python qui permet de travailler avec Excel via l'interface COM sous Windows http://sourceforge.net/projects/excelcomforpython/

La classe utilise win32com pour interagir avec Excel. Vous pouvez utiliser directement la classe ou l'utiliser comme exemple. Un grand nombre d'options implémentées telles que des formules matricielles, une mise en forme conditionnelle, des graphiques, etc.

3
Alex

C'est sûrement possible via le modèle objet Excel via COM: utilisez simplement les modules win32com pour Python. Je ne m'en souviens plus, mais j'ai déjà contrôlé le Media Player via COM à partir de Python. C'était un morceau de gâteau.

2
Vladimir Sinenko

C'est en fait très simple. Vous pouvez réellement exécuter n'importe quel programme. Il suffit de voir un moyen d'atteindre l'invite de commande à partir de ce programme. Dans le cas d'Excel, créez une fonction définie par l'utilisateur en appuyant sur Alt + F11 et collez le code suivant.

Function call_cmd()
Shell "CMD /C Notepad", vbNormalFocus
End Function

Maintenant, appuyez sur ctrl + s et revenez à Excel, sélectionnez une cellule et exécutez la fonction = call_cmd (). Ici, j'ai couru le Bloc-notes. De la même manière, vous pouvez voir où python.exe est installé et l'exécuter. Si vous souhaitez transmettre des entrées à python, sauvegardez les cellules en tant que fichier dans un répertoire local en tant que fichier csv et lisez-les en python à l'aide de os.system ().

0
Manideep Karthik