Générer des rapports à partir de données Excel en Java

Vous pouvez présenter des données Microsoft Excel sous la forme de rapports personnalisés à vos utilisateurs tels que des clients, des parties prenantes, etc. En tant que développeur Java, vous pouvez générer de tels rapports par programme en utilisant des feuilles de calcul Excel comme tableau de données. Dans cet article, vous apprendrez comment générer des rapports à partir de données Excel à l’aide de Java.

Les sujets suivants sont abordés/couverts dans cet article:

API Java pour la génération de rapports

Pour générer les rapports à partir de données Excel, j’utiliserai l’API GroupDocs.Assembly for Java. Il vous permet de créer de puissantes applications d’automatisation de documents et de génération de rapports. Il récupère les données de la source de données conformément au modèle de document défini, les assemble et génère des rapports dans le format de sortie spécifié. L’API prend en charge la récupération de données à partir de diverses sources de données telles que XML, Excel, JSON et CSV. Vous pouvez facilement générer des rapports dans tous les formats de fichiers couramment utilisés tels que PDF, HTML et Microsoft Word.

Vous pouvez télécharger le JAR de l’API ou simplement ajouter la configuration pom.xml suivante dans votre application Java basée sur Maven pour essayer les exemples de code mentionnés ci-dessous.

<repository>
  <id>GroupDocsJavaAPI</id>
  <name>API Java GroupDocs</name>
  <url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
  <groupId>com.groupdocs</groupId>
  <artifactId>groupdocs-assembly</artifactId>
  <version>21.7</version>
</dependency>

Générer des rapports à partir de données Excel à l’aide de Java

Vous pouvez facilement générer des rapports dans Word à partir de vos données Excel en suivant les étapes simples mentionnées ci-dessous:

  1. Obtenir la source de données Excel
  2. Définir un modèle en fonction des données Excel
  3. Convertir des données Excel en rapport Word en Java

Source de données Excel

Vous pouvez utiliser les données tabulaires comme source de données fournies dans la feuille de calcul Excel pour générer des rapports. J’utiliserai les exemples de données Excel suivants pour générer le rapport. Il s’agit des données contractuelles des clients avec leurs responsables respectifs et du prix contractuel convenu.

Source de données Excel

Source de données Excel

Modèle

Vous pouvez utiliser une syntaxe de modèle basée sur Linq pour créer un modèle. Un modèle est composé d’un contenu de document commun et de balises décrivant la structure du modèle et les liaisons de données. Vous pouvez définir le modèle suivant dans le fichier DOCX ou XLSX. Ce modèle vous permet d’itérer les données des contrats et leurs responsables respectifs avec le prix du contrat. Chaque groupe du modèle a une clé unique définie par le sélecteur d’entrée et contient des éléments de l’énumération source associée à cette clé. Vous pouvez accéder à la clé d’une instance de groupe à l’aide de la propriété Key. Une fois que vous avez créé le modèle, vous pouvez sauter dans le code pour générer le rapport. Vous pouvez en savoir plus sur la syntaxe du modèle dans la documentation.

Modèle de rapport

Modèle de rapport

Convertir des données Excel en rapport Word en Java

Vous pouvez automatiser la conversion des données Excel vers le rapport DOCX basé sur le modèle en suivant les étapes mentionnées ci-dessous:

L’exemple de code suivant montre comment générer un rapport à partir d’une source de données Excel selon le modèle défini à l’aide de Java.

String srcDocument = "C:\\Files\\template.docx";
String docReport = "C:\\Files\\Output.docx";
String dataFilePath = "C:\\Files\\Contracts_Data.xlsx";

// Définissez l'extraction des noms de colonne à partir de la première ligne.
DocumentTableOptions options = new DocumentTableOptions();
options.setFirstRowContainsColumnNames(true);

// Créer un tableau de documents
DocumentTable table = new DocumentTable(dataFilePath, 0, options);

// Créer un assembleur de documents
DocumentAssembler assembler = new DocumentAssembler();

// Assembler des données et générer un rapport
assembler.assembleDocument(srcDocument,docReport, 
  new DataSourceInfo(new DataStorage(), null),
  new DataSourceInfo(table,"ds"));
Rapport généré

Rapport généré

La classe _DocumentTableOptions fournit un ensemble d’options pour contrôler l’extraction des données d’une table de documents. J’ai défini la propriété _FirstRowContainsColumnNames sur true afin que les en-têtes de colonne ne fassent pas partie des données du rapport.

La classe DocumentTable permet d’accéder aux données d’une seule table (ou d’une feuille de calcul) située dans un document externe à utiliser lors de l’assemblage d’un document.

La classe DocumentAssembler fournit diverses méthodes pour générer des rapports à l’aide du modèle de document défini avec des données. La méthode assembleDocument() de cette classe prend trois paramètres d’entrée, le modèle défini comme document source, le chemin du fichier de sortie et la source de données. Il remplit les données de la source de données en fonction du modèle de document fourni et stocke le document résultant dans le chemin cible. Vous pouvez enregistrer le document résultant dans divers formats de fichiers pris en charge tels que Word, Excel ou HTML.

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limites d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris comment générer des rapports à partir de données Excel à l’aide de Java. Vous avez également appris comment créer un modèle de rapport pour générer des rapports. Vous pouvez en savoir plus sur l’API GroupDocs.Assembly pour Java à l’aide de la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également