2017-10-04 4 views
0

Je souhaite créer un programme qui automatise les rapports Excel, y compris divers graphiques en couleurs. Le programme doit être capable de lire un ensemble de données Excel. Sur la base de cet ensemble de données, le programme doit ensuite créer des pages de rapport et des graphiques, puis les exporter vers un fichier Excel ainsi que vers un fichier pdf.Automatisation de rapports et de graphiques Excel - Python xlsxWriter/xlswings ou Ruby axlsx/win32ole

J'ai fait quelques recherches et il semble que ce soit possible en utilisant python avec pandas - xlsxWriter ou xlswings ainsi que Ruby gems - axlsx ou win32ole.

Quelle est l'alternative la plus conviviale et la plus facile à apprendre? Quels sont les avantages et les inconvénients? Existe-t-il d'autres options que je devrais envisager (je voudrais éviter VBA - car c'est ainsi que les rapports sont actuellement produits)?

Toutes les réponses et les commentaires sont appréciés. Je vous remercie!

+0

Je pense que vous pourriez utiliser l'une ou l'autre langue. Si vous finissez par utiliser Ruby, utilisez certainement [axlsx] (https://github.com/randym/axlsx), c'est super simple (beaucoup plus facile que win32ole). –

Répondre

0

Si vous avez déjà VBA que fonctionne pour votre projet, puis le traduire en Ruby + WIN32OLE est probablement votre chemin le plus rapide vers le code de travail. Tout ce que vous pouvez faire dans VBA est faisable dans Ruby (si vous trouvez quelque chose que vous ne pouvez pas faire, postez ici pour demander de l'aide).

Je préfère travailler avec Excel via OLE puisque je sais que le fichier produit par Excel fonctionnera partout où je l'ouvre. Je n'ai pas utilisé axlsx mais je suis sûr que c'est un bon projet; Je n'aurais tout simplement pas confiance que cela produirait des fichiers Excel fonctionnant à chaque fois.

+0

Merci Chuck pour votre réponse. Cela signifie-t-il que OLE exécute le graphique dans Excel? C'est ce que je veux éviter - parce que les jeux de données sont trop volumineux et que les macros prennent une éternité à fonctionner. Je ne veux pas qu'Excel traite les données, je veux seulement que les résultats soient présentés dans Excel. – SueGunther

+0

Ma suggestion était de "porter" votre VBA existant à Ruby. Si le code actuel prend "forever" pour fonctionner alors Ruby + WIN32OLE ne sera pas meilleur. Toutefois, vous pouvez modifier votre code pour exécuter vos calculs de dataset dans Ruby, puis utiliser OLE pour produire un graphique à partir des résultats. Aucune raison cela ne peut pas fonctionner. –