Création d'une section répétitive de tableau mappée sur une partie XML personnalisée
Introduction
Dans ce didacticiel, nous allons parcourir le processus de création d’un tableau avec une section répétitive mappée à une partie XML personnalisée à l’aide d’Aspose.Words pour .NET. Cela est particulièrement utile pour générer dynamiquement des documents basés sur des données structurées.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Bibliothèque Aspose.Words pour .NET installée. Vous pouvez la télécharger à partir duSite Web d’Aspose.
- Une compréhension de base de C# et XML.
Importer des espaces de noms
Assurez-vous d’inclure les espaces de noms nécessaires dans votre projet :
using Aspose.Words;
using Aspose.Words.Markup;
using Aspose.Words.Tables;
Étape 1 : Initialiser le document et DocumentBuilder
Tout d’abord, créez un nouveau document et initialisez unDocumentBuilder
:
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Étape 2 : Ajouter une partie XML personnalisée
Ajoutez une partie XML personnalisée au document. Ce XML contient les données que nous souhaitons mapper à notre table :
CustomXmlPart xmlPart = doc.CustomXmlParts.Add("Books",
"<books><book><title>Everyday Italian</title><author>Giada De Laurentiis</author></book>" +
"<book><title>Harry Potter</title><author>J K. Rowling</author></book>" +
"<book><title>Learning XML</title><author>Erik T. Ray</author></book></books>");
Étape 3 : Créer la structure du tableau
Ensuite, utilisez leDocumentBuilder
pour créer l’en-tête du tableau :
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();
Étape 4 : Créer une section répétitive
Créer unStructuredDocumentTag
(SDT) pour la section répétitive et la mapper aux données XML :
StructuredDocumentTag repeatingSectionSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);
Étape 5 : Créer un élément de section répétitif
Créez un SDT pour l’élément de section répétitive et ajoutez-le à la section répétitive :
StructuredDocumentTag repeatingSectionItemSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);
Étape 6 : mapper les données XML aux cellules du tableau
Créez des SDT pour le titre et l’auteur, mappez-les aux données XML et ajoutez-les à la ligne :
StructuredDocumentTag titleSdt = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);
titleSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/title[1]", "");
row.AppendChild(titleSdt);
StructuredDocumentTag authorSdt = new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);
authorSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/author[1]", "");
row.AppendChild(authorSdt);
Étape 7 : Enregistrer le document
Enfin, enregistrez le document dans le répertoire spécifié :
doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");
Conclusion
En suivant ces étapes, vous avez réussi à créer un tableau avec une section répétitive mappée à une partie XML personnalisée à l’aide d’Aspose.Words pour .NET. Cela permet de générer du contenu dynamique basé sur des données structurées, ce qui rend la création de documents plus flexible et plus puissante.
FAQ
Qu’est-ce qu’un StructuredDocumentTag (SDT) ?
Un SDT, également connu sous le nom de contrôle de contenu, est une région délimitée dans un document utilisée pour contenir des données structurées.
Puis-je utiliser d’autres types de données dans la partie XML personnalisée ?
Oui, vous pouvez structurer votre partie XML personnalisée avec n’importe quel type de données et les mapper en conséquence.
Comment ajouter des lignes supplémentaires à la section répétitive ?
La section répétitive réplique automatiquement la structure de ligne pour chaque élément du chemin XML mappé.