Générer un tableau à partir d’une table de données
Introduction
La création dynamique de tables à partir de sources de données est une tâche courante dans de nombreuses applications. Que vous génériez des rapports, des factures ou des résumés de données, la possibilité de remplir une table avec des données par programmation peut vous faire gagner beaucoup de temps et d’efforts. Dans ce didacticiel, nous allons découvrir comment générer une table à partir d’un DataTable à l’aide d’Aspose.Words pour Java. Nous décomposerons le processus en étapes faciles à gérer, afin que vous ayez une compréhension claire de chaque partie.
Prérequis
Avant de plonger dans le code, assurons-nous que vous disposez de tout ce dont vous avez besoin pour commencer :
Kit de développement Java (JDK) : assurez-vous que le JDK est installé sur votre machine. Vous pouvez le télécharger à partir du Site Web d’Oracle .
Aspose.Words pour Java : vous aurez besoin de la bibliothèque Aspose.Words. Vous pouvez télécharger la dernière version à partir de Page des sorties d’Aspose .
IDE : un environnement de développement intégré (IDE) comme IntelliJ IDEA ou Eclipse facilitera le codage.
Connaissances de base de Java : la familiarité avec les concepts de programmation Java vous aidera à mieux comprendre les extraits de code.
Exemple de données : pour ce didacticiel, nous utiliserons un fichier XML nommé « Liste de personnes.xml » pour simuler une source de données. Vous pouvez créer ce fichier avec des exemples de données à des fins de test.
Étape 1 : Créer un nouveau document
Tout d’abord, nous devons créer un nouveau document dans lequel notre tableau sera placé. Il s’agit de la toile de fond de notre travail.
Document doc = new Document();
Ici, nous instancions un nouveauDocument
objet. Cela servira de document de travail où nous construirons notre tableau.
Étape 2 : Initialiser DocumentBuilder
Ensuite, nous utiliserons leDocumentBuilder
classe, qui nous permet de manipuler le document plus facilement.
DocumentBuilder builder = new DocumentBuilder(doc);
LeDocumentBuilder
L’objet fournit des méthodes pour insérer des tableaux, du texte et d’autres éléments dans le document.
Étape 3 : définir l’orientation de la page
Comme nous nous attendons à ce que notre tableau soit large, nous allons définir l’orientation de la page sur paysage.
doc.getFirstSection().getPageSetup().setOrientation(Orientation.LANDSCAPE);
Cette étape est cruciale car elle garantit que notre tableau s’adapte parfaitement à la page sans être coupé.
Étape 4 : Charger les données à partir de XML
Maintenant, nous devons charger nos données du fichier XML dans unDataTable
C’est de là que proviennent nos données.
DataSet ds = new DataSet();
ds.readXml(getMyDir() + "List of people.xml");
DataTable dataTable = ds.getTables().get(0);
Ici, nous lisons le fichier XML et récupérons la première table de l’ensemble de données.DataTable
contiendra les données que nous souhaitons afficher dans notre document.
Étape 5 : Importer le tableau à partir de DataTable
Vient maintenant la partie passionnante : importer nos données dans le document sous forme de tableau.
Table table = importTableFromDataTable(builder, dataTable, true);
Nous appelons la méthodeimportTableFromDataTable
, en passant leDocumentBuilder
, notreDataTable
, et un booléen pour indiquer s’il faut inclure les en-têtes de colonne.
Étape 6 : Styliser la table
Une fois que nous avons notre table, nous pouvons appliquer un peu de style pour lui donner une belle apparence.
table.setStyleIdentifier(StyleIdentifier.MEDIUM_LIST_2_ACCENT_1);
table.setStyleOptions(TableStyleOptions.FIRST_ROW | TableStyleOptions.ROW_BANDS | TableStyleOptions.LAST_COLUMN);
Ce code applique un style prédéfini au tableau, améliorant son attrait visuel et sa lisibilité.
Étape 7 : supprimer les cellules indésirables
Si vous avez des colonnes que vous ne souhaitez pas afficher, comme une colonne d’image, vous pouvez facilement les supprimer.
table.getFirstRow().getLastCell().removeAllChildren();
Cette étape garantit que notre tableau affiche uniquement les informations pertinentes.
Étape 8 : Enregistrer le document
Enfin, nous sauvegardons notre document avec le tableau généré.
doc.save(getArtifactsDir() + "WorkingWithTables.BuildTableFromDataTable.docx");
Cette ligne enregistre le document dans le répertoire spécifié, vous permettant de consulter les résultats.
La méthode importTableFromDataTable
Regardons de plus près leimportTableFromDataTable
méthode. Cette méthode est responsable de la création de la structure de la table et de son remplissage avec des données.
Étape 1 : Commencez la table
Tout d’abord, nous devons démarrer un nouveau tableau dans le document.
Table table = builder.startTable();
Ceci initialise une nouvelle table dans notre document.
Étape 2 : Ajouter des en-têtes de colonnes
Si nous voulons inclure des en-têtes de colonnes, nous vérifions leimportColumnHeadings
drapeau.
if (importColumnHeadings) {
// Stocker le formatage d'origine
boolean boldValue = builder.getFont().getBold();
int paragraphAlignmentValue = builder.getParagraphFormat().getAlignment();
// Définir la mise en forme des titres
builder.getFont().setBold(true);
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
// Insérer les noms de colonnes
for (DataColumn column : dataTable.getColumns()) {
builder.insertCell();
builder.writeln(column.getColumnName());
}
builder.endRow();
// Restaurer le formatage d'origine
builder.getFont().setBold(boldValue);
builder.getParagraphFormat().setAlignment(paragraphAlignmentValue);
}
Ce bloc de code formate la ligne d’en-tête et insère les noms des colonnes à partir de laDataTable
.
Étape 3 : Remplir le tableau avec des données
Maintenant, nous parcourons chaque ligne de laDataTable
pour insérer des données dans la table.
for (DataRow dataRow : (Iterable<DataRow>) dataTable.getRows()) {
for (Object item : dataRow.getItemArray()) {
builder.insertCell();
switch (item.getClass().getName()) {
case "DateTime":
Date dateTime = (Date) item;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM d, yyyy");
builder.write(simpleDateFormat.format(dateTime));
break;
default:
builder.write(item.toString());
break;
}
}
builder.endRow();
}
Dans cette section, nous traitons différents types de données, en formatant les dates de manière appropriée tout en insérant d’autres données sous forme de texte.
Étape 4 : Terminez la table
Enfin, nous terminons le tableau une fois toutes les données insérées.
builder.endTable();
Cette ligne marque la fin de notre tableau, permettant àDocumentBuilder
de savoir que nous en avons terminé avec cette section.
Conclusion
Et voilà ! Vous avez appris avec succès à générer un tableau à partir d’un DataTable à l’aide d’Aspose.Words pour Java. En suivant ces étapes, vous pouvez facilement créer des tableaux dynamiques dans vos documents en fonction de diverses sources de données. Que vous génériez des rapports ou des factures, cette méthode rationalisera votre flux de travail et améliorera votre processus de création de documents.
FAQ
Qu’est-ce que Aspose.Words pour Java ?
Aspose.Words pour Java est une bibliothèque puissante permettant de créer, de manipuler et de convertir des documents Word par programmation.
Puis-je utiliser Aspose.Words gratuitement ?
Oui, Aspose propose une version d’essai gratuite. Vous pouvez la télécharger à partir de ici .
Comment styliser des tableaux dans Aspose.Words ?
Vous pouvez appliquer des styles à l’aide d’identifiants de style prédéfinis et d’options fournies par la bibliothèque.
Quels types de données puis-je insérer dans des tableaux ?
Vous pouvez insérer différents types de données, notamment du texte, des nombres et des dates, qui peuvent être formatés en conséquence.
Où puis-je obtenir de l’aide pour Aspose.Words ?
Vous pouvez trouver de l’aide et poser des questions sur le Forum Aspose .