Créer un tableau croisé dynamique dans Excel à l'aide de Python

Les tableaux croisés dynamiques dans les feuilles de calcul Excel sont utilisés pour résumer les données de manière interactive. Supposons que vous disposiez des données d’un certain nombre de factures et que vous souhaitiez obtenir leur total regroupé par clients ou produits. Les tableaux croisés dynamiques entrent en jeu dans de tels cas. Dans cet article, vous apprendrez à gérer les tableaux croisés dynamiques dans Excel en Python. En particulier, vous apprendrez à créer un tableau croisé dynamique dans Excel en Python. De plus, nous montrerons comment formater les cellules dans les tableaux croisés dynamiques Excel par programme.

Bibliothèque Python pour créer un tableau croisé dynamique dans Excel - Téléchargement gratuit

Aspose.Cells for Python est une bibliothèque à grande vitesse, conçue pour créer et traiter des fichiers Excel. Nous utiliserons cette bibliothèque pour créer des tableaux croisés dynamiques dans des feuilles de calcul Excel.

Vous pouvez télécharger son package ou l’installer à partir de PyPI à l’aide de la commande pip suivante.

pip install aspose-cells

Créer un tableau croisé dynamique dans Excel en Python

Voici les étapes pour créer un tableau croisé dynamique dans Excel à l’aide de Python.

  • Créez un nouveau fichier Excel ou chargez un fichier Excel existant à l’aide de la classe Workbook.
  • Remplir la feuille de calcul avec des données (facultatif).
  • Obtenez une collection de tableaux croisés dynamiques dans un objet PivotTableCollection à l’aide de la méthode Worksheet.getPivotTables().
  • Ajoutez un nouveau tableau croisé dynamique à l’aide de la méthode PivotTableCollection.add(string, string, string) et obtenez sa référence dans un objet.
  • Définissez des options telles que le total général, le formatage, etc.
  • Ajoutez des champs à la zone à l’aide de la méthode PivotTable.addFieldToArea(int, int).
  • Enregistrez le classeur à l’aide de la méthode Workbook.save(string).

L’exemple de code suivant montre comment ajouter un tableau croisé dynamique dans Excel en Python.

import jpype
import asposecells

jpype.startJVM()
from asposecells.api import Workbook, PivotFieldType

# Instancier un objet Workbook
workbook = Workbook()

# Ajouter une nouvelle feuille de calcul et obtenir sa référence
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)

# Obtenir les cellules de la feuille de calcul
cells = worksheet.getCells()

# Définir la valeur des cellules
cell = cells.get("A1")
cell.setValue("Sport")
cell = cells.get("B1")
cell.setValue("Quarter")
cell = cells.get("C1")
cell.setValue("Sales")

cell = cells.get("A2")
cell.setValue("Golf")
cell = cells.get("A3")
cell.setValue("Golf")
cell = cells.get("A4")
cell.setValue("Tennis")
cell = cells.get("A5")
cell.setValue("Tennis")
cell = cells.get("A6")
cell.setValue("Tennis")
cell = cells.get("A7")
cell.setValue("Tennis")
cell = cells.get("A8")
cell.setValue("Golf")

cell = cells.get("B2")
cell.setValue("Qtr3")
cell = cells.get("B3")
cell.setValue("Qtr4")
cell = cells.get("B4")
cell.setValue("Qtr3")
cell = cells.get("B5")
cell.setValue("Qtr4")
cell = cells.get("B6")
cell.setValue("Qtr3")
cell = cells.get("B7")
cell.setValue("Qtr4")
cell = cells.get("B8")
cell.setValue("Qtr3")

cell = cells.get("C2")
cell.setValue(1500)
cell = cells.get("C3")
cell.setValue(2000)
cell = cells.get("C4")
cell.setValue(600)
cell = cells.get("C5")
cell.setValue(1500)
cell = cells.get("C6")
cell.setValue(4070)
cell = cells.get("C7")
cell.setValue(5000)
cell = cells.get("C8")
cell.setValue(6430)

# Obtenir tous les tableaux croisés dynamiques
pivotTables = worksheet.getPivotTables()

# Ajouter un nouveau tableau croisé dynamique à la feuille de calcul
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# Accéder à l'instance du tableau croisé dynamique nouvellement ajouté
pivotTable = pivotTables.get(index)

# Masquer les totaux généraux pour les lignes
pivotTable.setRowGrand(False)

# Faites glisser le premier champ vers la zone de ligne
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# Faites glisser le deuxième champ vers la zone de la colonne
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# Faites glisser le troisième champ vers la zone de données
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# Enregistrez le fichier Excel
workbook.save("CreatePivotTable.xlsx")

Données Excel

Source de données pour tableau croisé dynamique excel

Tableau croisé dynamique

créer un tableau croisé dynamique dans excel en java

Formater des cellules dans des tableaux croisés dynamiques Excel en Python

Voici les étapes pour formater les cellules dans les tableaux croisés dynamiques Excel en Python.

  • Créez un nouveau fichier Excel ou chargez un fichier Excel existant à l’aide de la classe Workbook.
  • Remplir la feuille de calcul (facultatif).
  • Obtenez la référence de la feuille de calcul où se trouve le tableau croisé dynamique.
  • Obtenez la référence du tableau croisé dynamique par index à l’aide de la méthode Worksheet.getPivotTables().get(index).
  • Créez un nouveau style à l’aide de la méthode Workbook.createStyle() et obtenez sa référence.
  • Définissez les propriétés souhaitées de l’objet Style.
  • Affectez l’objet Style au tableau croisé dynamique.
  • Enregistrez le classeur à l’aide de la méthode Workbook.save(string).

L’exemple de code suivant montre comment formater un tableau croisé dynamique Excel en Python.

import jpype
import asposecells

jpype.startJVM()
from asposecells.api import Workbook, BackgroundType, Color

# Créer un objet de classeur à partir du fichier Excel source contenant un tableau croisé dynamique
workbook = Workbook("pivotTable_test.xlsx")

# Accéder à la feuille de calcul par son nom
worksheet = workbook.getWorksheets().get("PivotTable")

# Accéder au tableau croisé dynamique par index
pivotTable = worksheet.getPivotTables().get(0)

# Créer un objet de style avec une couleur d'arrière-plan bleu clair
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())

# Mettre en forme tout le tableau croisé dynamique avec une couleur bleu clair
pivotTable.formatAll(style)

# Créer un autre objet de style avec la couleur jaune
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())

# Formater les cellules de la première ligne du tableau croisé dynamique avec la couleur jaune
columns = [0, 1, 2, 3, 4]
for x in columns:
  pivotTable.format(1, x, style)

# Enregistrer l'objet classeur
workbook.save("output.xlsx")

Bibliothèque Python pour créer des tableaux croisés dynamiques Excel - Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Cells for Python sans limitation d’évaluation.

Conclusion

Dans cet article, vous avez appris à créer un tableau croisé dynamique dans des feuilles Excel en Python. De plus, vous avez vu comment formater des cellules dans des tableaux croisés dynamiques dans Excel par programmation. En outre, vous pouvez en savoir plus sur la bibliothèque Python Excel en utilisant documentation. Si vous avez des questions, n’hésitez pas à nous en faire part via notre forum.

Voir également