Question

Comment puis-je aller sur la création d'une feuille de calcul (dans un classeur Excel) avec un tableau croisé dynamique en utilisant libs python comme pyExcelerator / xlrd? Je dois générer un rapport quotidien qui a un tableau croisé dynamique pour résumer les données sur d'autres feuilles. Une option serait d'avoir un modèle vierge que je copier et remplir avec les données. Dans ce cas, est-il un moyen de rafraîchir le pivot du code? Toutes les autres suggestions?

Était-ce utile?

La solution

S'il vous plaît préciser (en modifiant votre question) si « feuille » est une abréviation de « feuille de calcul » et signifie un fichier XLS entier, ou si elle est une abréviation de « feuille de calcul », un composant d'un « classeur ».

Si par « tableau croisé dynamique » vous voulez dire que le mécanisme Excel, vous êtes hors de la chance, parce que cela peut être créé que par Excel. Toutefois, si vous entendez un « cross-onglet » que vous créez votre auto en utilisant Python et une bibliothèque appropriée, vous pouvez le faire en utilisant le trio de xlrd, xlwt et xlutils.

xlrd laissent supposer que les.

xlwt est une fourche de pyExcelerator avec des bugs fixes et plusieurs améliorations. pyExcelerator ne semble pas être maintenue.

xlutils est un ensemble de modules d'application. xlutils.copy peut être utilisé pour créer un objet Workbook xlwt à partir d'un xlrd objet du livre, de sorte que vous pouvez apporter des modifications au classeur xlwt et l'enregistrer dans un fichier.

Voici votre one-stop-shop pour plus d'informations sur les trois paquets , avec un tutoriel , et des liens vers une liste de diffusion google-groupe / que vous pouvez utiliser pour obtenir de l'aide.

Autres conseils

Essayez de jeter un oeil à ceci: Python: Actualiser les tableaux croisés dynamiques dans la feuille

Si vous figurez dehors Comment créer les tableaux croisés dynamiques, vous pouvez utiliser mon code pour les rafraîchir

Je ne crois pas que vous pouvez ajouter une programatically tableau croisé dynamique à l'aide xlwt.

Mais votre deuxième approche (peuplant un classeur configuré avant) semble raisonnable.

Vous pouvez actualiser le tableau croisé dynamique à l'aide d'une macro VBA dans le classeur de modèle. Pour ce faire automatiquement, créez un gestionnaire d'événements WorkBook_Open.

Le code VBA pour actualiser un tableau croisé dynamique est:

Sheet1.PivotTables(1).PivotCache.Refresh
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top