Les feuilles de calcul MS Excel ont facilité la conservation et le partage d’une grande quantité de données tabulaires. De plus, vous pouvez effectuer diverses opérations telles que l’application de formules, la génération de tableaux et de graphiques, le tri et le filtrage de données, etc. Dans cet article, vous apprendrez à implémenter les fonctionnalités d’automatisation d’Excel à partir de vos applications Java. Après avoir lu cet article, vous pourrez créer des fichiers Excel XLSX ou XLS à partir de zéro en utilisant Java. En outre, cet article explique comment mettre à jour un fichier Excel existant, générer des graphiques, appliquer des formules et ajouter des tableaux croisés dynamiques dans des feuilles de calcul Excel.

API Java pour créer des fichiers Excel - Téléchargement gratuit

Aspose.Cells for Java est une puissante API de manipulation de feuilles de calcul qui vous permet de créer ou de modifier des fichiers Excel sans MS Office. L’API prend en charge l’ajout de tableaux, de graphiques, de formules et effectue d’autres opérations de manipulation de feuille de calcul par programme. Vous pouvez télécharger l’API gratuitement ou l’installer dans vos applications basées sur Maven.

<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>20.9</version>
</dependency>

Créer Excel XLSX ou XLS en utilisant Java

Les fichiers MS Excel sont appelés classeurs et chaque classeur est composé d’une ou plusieurs feuilles de calcul. Les feuilles de calcul contiennent en outre les lignes et les colonnes pour conserver les données sous forme de cellules. Commençons donc par créer un classeur simple. Voici les étapes pour créer un fichier Excel XLSX à partir de zéro.

  • Créez une instance de la classe Workbook.
  • Accédez à la feuille de calcul souhaitée à l’aide de la méthode Workbook.getWorksheets.get().
  • Placez la valeur dans la cellule souhaitée de la feuille de calcul en utilisant l’identifiant de la cellule, tel que A1, B3, etc.
  • Enregistrez le classeur sous forme de fichier Excel à l’aide de la méthode Workbook.save().

L’exemple de code suivant montre comment créer un fichier Excel XLSX à l’aide de Java.

// Créer un nouveau classeur
Workbook workbook = new Workbook();

// Ajouter de la valeur dans la cellule
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World!");

// Enregistrer en tant que fichier Excel XLSX
workbook.save("Excel.xlsx"); 

Modifier un fichier Excel XLSX à l’aide de Java

Voyons maintenant comment modifier ou insérer des données dans un fichier MS Excel existant. Pour cela, vous pouvez simplement charger le fichier, accéder à la feuille de calcul souhaitée et enregistrer le fichier mis à jour. Voici les étapes pour modifier un fichier Excel existant.

  • Ouvrez le fichier Excel à l’aide de la classe Workbook.
  • Accédez aux feuilles de calcul et aux cellules en utilisant respectivement les classes Worksheet et Cell.
  • Enregistrez le classeur mis à jour en tant que fichier Excel .xlsx.

L’exemple de code suivant montre comment modifier un fichier MS Excel existant à l’aide de Java.

// Créer un nouveau classeur
Workbook workbook = new Workbook("workbook.xls"); 

// Obtenir la référence de la cellule "A1" à partir des cellules d'une feuille de calcul
Cell cell = workbook.getWorksheets().get(0).getCells().get("A1");

// Définissez le "Hello World!" valeur dans la cellule "A1"
cell.setValue("updated cell value.");

// Ecrire le fichier Excel
workbook.save("Excel.xls", FileFormatType.EXCEL_97_TO_2003);

Créer des tableaux ou des graphiques dans Excel à l’aide de Java

Les graphiques dans les feuilles de calcul sont utilisés pour représenter visuellement les données stockées dans les feuilles de calcul. Ils facilitent l’analyse d’une grande quantité de données assez facilement. Aspose.Cells for Java fournit une large gamme de graphiques que vous pouvez créer dans les fichiers Excel par programme. Voici les étapes pour créer un graphique dans un fichier Excel XLSX.

  • Créez un nouveau fichier Excel ou chargez-en un existant à l’aide de la classe Workbook.
  • Ajoutez des données à la feuille de calcul (facultatif).
  • Obtenez la collection de graphiques de la feuille de calcul à l’aide de la méthode Worksheet.getCharts().
  • Ajoutez un nouveau graphique à l’aide de la méthode Worksheet.getCharts().add().
  • Obtenez le graphique nouvellement créé à partir de la collection.
  • Spécifiez la plage de cellules pour définir NSeries pour le graphique.
  • Enregistrez le classeur en tant que fichier Excel .xlsx.

L’exemple de code suivant montre comment créer un graphique dans Excel XLSX à l’aide de Java.

// Créer un nouveau classeur
Workbook workbook = new Workbook("workbook.xlsx"); 

// Obtention de la référence de la première feuille de travail
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);

// Ajouter une valeur d'échantillon aux cellules
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(50);

// obtenir des graphiques dans la feuille de calcul
ChartCollection charts = sheet.getCharts();

// Ajouter un graphique à la feuille de calcul
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);

// Ajout de NSeries (source de données de graphique) au graphique allant de "A1"
// cellule à "B3"
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);

// Ecrire le fichier Excel 
workbook.save("Excel_with_Chart.xlsx");
créer un graphique dans excel en utilisant java

Créer un tableau croisé dynamique dans Excel XLSX à l’aide de Java

Les tableaux croisés dynamiques dans les feuilles de calcul Excel ont divers objectifs, tels que l’ajout de filtres aux données, le calcul des totaux, la synthèse des données, etc. Les tableaux croisés dynamiques peuvent être créés à l’aide de la plage de cellules de la feuille de calcul. Voici les étapes pour créer un tableau croisé dynamique dans une feuille de calcul Excel.

  • Créez un nouveau Workbook ou chargez un fichier existant.
  • Insérez des données dans la feuille de calcul (facultatif).
  • Accédez à la collection de tableaux croisés dynamiques à l’aide de la méthode Worksheet.getPivotTables().
  • Ajoutez un nouveau tableau croisé dynamique dans la feuille de calcul à l’aide de la méthode Worksheet.getPivotTables().add().
  • Fournir des données au tableau croisé dynamique.
  • Enregistrez le classeur.

L’exemple de code suivant montre comment créer un tableau croisé dynamique dans Excel à l’aide de Java.

// Créer un nouveau classeur
Workbook workbook = new Workbook("workbook.xlsx"); 

// Obtenez la première feuille de calcul.
Worksheet sheet = workbook.getWorksheets().get(0);

// Obtention de la collection de cellules de Worksheet
Cells cells = sheet.getCells();

// Définir la valeur des cellules
Cell 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);


PivotTableCollection pivotTables = sheet.getPivotTables();

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

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

// Affichage des 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);

// Ecrire le fichier Excel 
workbook.save("Excel_with_Chart.xlsx");
créer un tableau croisé dynamique dans excel en utilisant java

Ajouter des formules pour les cellules dans un fichier Excel à l’aide de Java

Aspose.Cells for Java vous permet également de travailler avec des formules dans les feuilles de calcul Excel. Vous pouvez appliquer les fonctions intégrées ainsi que les fonctions complémentaires aux cellules.

Appliquer les fonctions intégrées dans Excel

Pour utiliser les fonctions intégrées, vous pouvez simplement accéder à la cellule souhaitée dans la feuille de calcul et ajouter une formule à l’aide de la méthode Cell.setFormula(String). L’exemple de code suivant montre comment définir une formule intégrée à l’aide de Java.

// Créer un nouveau classeur
Workbook workbook = new Workbook();

// Ajouter de la valeur dans la cellule
workbook.getWorksheets().get(0).getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))");

// Enregistrer en tant que fichier Excel XLSX
workbook.save("Excel.xlsx"); 

Ajouter des fonctions complémentaires dans Excel

Il peut arriver que vous deviez utiliser une fonction définie par l’utilisateur. Pour cela, vous devrez enregistrer la fonction de complément à l’aide d’un fichier .xlam (complément macro Excel), puis l’utiliser pour les cellules souhaitées. Pour enregistrer les fonctions complémentaires, Aspose.Cells for Java fournit les méthodes registerAddInFunction(int, String) et registerAddInFunction(String, String, boolean). L’exemple de code suivant montre comment enregistrer et utiliser une fonction de complément à l’aide de Java.

// créer un nouveau classeur
Workbook workbook = new Workbook();

// Enregistrer le complément activé par macro avec le nom de la fonction
int id = workbook.getWorksheets().registerAddInFunction("TESTUDF.xlam", "TEST_UDF", false);

// Enregistrez plus de fonctions dans le fichier (le cas échéant)
workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file

// Accéder à la première feuille de calcul
Worksheet worksheet = workbook.getWorksheets().get(0);

// Accéder à la première cellule
Cell cell = worksheet.getCells().get("A1");

// Définir le nom de la formule présente dans le complément
cell.setFormula("=TEST_UDF()"); 

// Enregistrer en tant que fichier Excel XLSX
workbook.save("Excel.xlsx"); 

Conclusion

Dans cet article, vous avez vu comment créer des fichiers MS Excel à partir de zéro en utilisant Java sans MS Office. Vous avez également appris à mettre à jour des classeurs, à créer des graphiques, à ajouter des tableaux et à appliquer des formules aux valeurs des cellules dans les feuilles de calcul MS Excel. Vous pouvez en savoir plus sur l’API Java Excel d’Aspose en utilisant documentation.

Voir également