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 dans une feuille de calcul. Dans ce cas, vous pouvez utiliser un tableau croisé dynamique pour totaliser les factures regroupées par clients ou produits. Dans cet article, vous apprendrez à gérer les tableaux croisés dynamiques dans Excel par programmation. En particulier, vous apprendrez à créer un tableau croisé dynamique dans Excel à l’aide de Java. De plus, nous générerons également des graphiques basés sur le tableau croisé dynamique.
- API Java pour travailler avec des tableaux croisés dynamiques Excel
- Créer un tableau croisé dynamique dans Excel
- Générer un graphique à l’aide d’un tableau croisé dynamique
- Obtenez une licence API gratuite
API Java pour créer un tableau croisé dynamique dans Excel
Afin de créer un tableau croisé dynamique Excel, nous utiliserons Aspose.Cells for Java. Il s’agit d’une API puissante qui vous permet de générer, modifier et convertir des fichiers Excel à partir de vos applications Java. Vous pouvez soit télécharger l’API ou l’installer à l’aide des configurations Maven suivantes.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>21.4</version>
</dependency>
Créer un tableau croisé dynamique dans Excel à l’aide de Java
Voici les étapes pour créer un tableau croisé dynamique dans Excel à l’aide de Java.
- 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 récupérez sa référence dans un objet PivotTable.
- 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.
// Instancier un objet Workbook
Workbook workbook = new Workbook("worksheet.xlsx");
// Accéder à la fiche
Worksheet sheet2 = workbook.getWorksheets().get(1);
// Obtenir la collection de tableaux croisés dynamiques dans la feuille
PivotTableCollection pivotTables = sheet2.getPivotTables();
// Ajouter un tableau croisé dynamique à la feuille de calcul
int index = pivotTables.add("=Data!A1:F30", "B3", "PivotTable1");
// Accéder à l'instance du tableau croisé dynamique nouvellement ajouté
PivotTable pivotTable = pivotTables.get(index);
// Afficher les totaux généraux
pivotTable.setRowGrand(true);
pivotTable.setColumnGrand(true);
// Définir le rapport de tableau croisé dynamique est automatiquement formaté
pivotTable.setAutoFormat(true);
// Définissez le type de format automatique du tableau croisé dynamique.
pivotTable.setAutoFormatType(PivotTableAutoFormatType.REPORT_6);
// Faites glisser le premier champ vers la zone de ligne.
pivotTable.addFieldToArea(PivotFieldType.ROW, 0);
// Faites glisser le troisième champ vers la zone de ligne.
pivotTable.addFieldToArea(PivotFieldType.ROW, 2);
// Faites glisser le deuxième champ vers la zone de ligne.
pivotTable.addFieldToArea(PivotFieldType.ROW, 1);
// Faites glisser le quatrième champ vers la zone de colonne.
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 3);
// Faites glisser le cinquième champ vers la zone de données.
pivotTable.addFieldToArea(PivotFieldType.DATA, 5);
// Définir le format numérique du premier champ de données
pivotTable.getDataFields().get(0).setNumber(7);
// Enregistrez le fichier Excel
workbook.save("pivotTable.xls");
Données Excel
Tableau croisé dynamique
Générer un graphique à l’aide de tableaux croisés dynamiques Excel en Java
Voici les étapes pour générer un graphique à l’aide de tableaux croisés dynamiques Excel en Java.
- Créez un nouveau fichier Excel ou chargez un fichier Excel existant à l’aide de la classe Workbook.
- Remplir la feuille de calcul (facultatif).
- Ajoutez une nouvelle feuille de calcul de type graphique à l’aide de Workbook.getWorksheets().add(SheetType.CHART) et récupérez sa référence dans un objet Worksheet.
- Ajoutez un nouveau graphique à l’aide de la méthode Worksheet.getCharts().add() et récupérez sa référence dans un objet Chart.
- Définissez le tableau croisé dynamique comme source de données du graphique à l’aide de la méthode Chart.setPivotSource(string).
- Enregistrez le classeur à l’aide de la méthode Workbook.save(string).
L’exemple de code suivant montre comment générer un graphique à l’aide d’un tableau croisé dynamique Excel.
// Instancier un objet Workbook
Workbook workbook = new Workbook("pivotTable.xls");
// Ajouter une nouvelle feuille
int sheetIndex = workbook.getWorksheets().add(SheetType.CHART);
Worksheet sheet3 = workbook.getWorksheets().get(sheetIndex);
// Nommez la feuille
sheet3.setName("PivotChart");
// Ajouter un graphique à colonnes
int chartIndex = sheet3.getCharts().add(ChartType.COLUMN, 0, 5, 28, 16);
Chart chart = sheet3.getCharts().get(chartIndex);
// Définir la source de données du graphique croisé dynamique
chart.setPivotSource("PivotTable!PivotTable1");
chart.setHidePivotFieldButtons(false);
// Enregistrez le fichier Excel
workbook.save("pivotChart_test.xls");
Obtenez une licence API gratuite
Vous pouvez obtenir une licence temporaire gratuite pour utiliser l’API sans limitation d’évaluation.
Conclusion
Dans cet article, vous avez appris à créer un tableau croisé dynamique dans Excel à l’aide de Java. De plus, vous avez vu comment générer des graphiques à l’aide des tableaux croisés dynamiques dans Excel. Vous pouvez en savoir plus sur l’API Java Excel à l’aide de documentation. Si vous avez des questions, n’hésitez pas à nous en faire part via notre forum.