Création d'une section répétitive de tableau mappée à une partie XML personnalisée
Ce didacticiel montre comment créer un tableau avec une section répétitive mappée à une partie XML personnalisée dans un document Word à l’aide d’Aspose.Words pour .NET. La section répétitive vous permet d’ajouter dynamiquement des lignes en fonction des données XML stockées dans la partie XML personnalisée.
Conditions préalables
Pour suivre ce tutoriel, vous devez disposer des éléments suivants :
- Bibliothèque Aspose.Words pour .NET installée.
- Connaissance de base de C# et du traitement de mots avec des documents Word.
Étape 1 : configurer le répertoire de documents
Commencez par configurer le chemin d’accès à votre répertoire de documents. Remplacer"YOUR DOCUMENT DIRECTORY"
avec le chemin réel du répertoire dans lequel vous souhaitez enregistrer le document.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Étape 2 : Créer un document et DocumentBuilder
Créez une nouvelle instance duDocument
classe et unDocumentBuilder
pour construire le contenu du document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Étape 3 : Ajouter des données XML personnalisées à un CustomXmlPart
Créer unCustomXmlPart
et ajoutez-y des données XML personnalisées. Dans cet exemple, nous créons une chaîne XML représentant une collection de livres avec leurs titres et auteurs.
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 4 : Créer une table et une structure de table
Commencez à créer un tableau en utilisant leStartTable
méthode duDocumentBuilder
. Ajoutez des cellules et du contenu au tableau à l’aide de l’outilInsertCell
etWrite
méthodes.
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();
Étape 5 : Créer la section répétitive mappée sur du XML personnalisé
Créer unStructuredDocumentTag
avecSdtType.RepeatingSection
pour représenter la section répétitive. Définissez le mappage XML pour la section répétitive à l’aide duSetMapping
méthode duXmlMapping
propriété. Dans cet exemple, nous mappons la section répétitive à/books[1]/book
.
StructuredDocumentTag repeatingSectionSdt =
new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);
Étape 6 : Créer l’élément de section répétitive et ajouter des cellules
Créer unStructuredDocumentTag
avecSdtType.RepeatingSectionItem
pour représenter l’élément de section répétitive. Ajoutez-le en tant qu’enfant à la section répétitive.
StructuredDocumentTag repeatingSectionItemSdt =
new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Créer unRow
pour représenter chaque élément de la section répétitive et l’ajouter à l’élément de la section répétitive.
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);
Étape 7 : ajouter des contrôles de contenu dans la section répétitive
CréerStructuredDocumentTag
objets avecSdtType.PlainText
pour représenter les contrôles de contenu du titre et de l’auteur. Définissez le mappage XML pour chaque contrôle de contenu à l’aide duSetMapping
méthode duXmlMapping
propriété. Dans cet exemple, nous mappons le contrôle de titre à/books[1]/book[1]/title[1]
et le contrôle de l’auteur pour/books[1]/book[1]/author[1]
.
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 8 : Enregistrez le document
Enregistrez le document modifié dans le répertoire spécifié à l’aide duSave
méthode. Fournissez le nom de fichier souhaité avec l’extension de fichier appropriée. Dans cet exemple, nous enregistrons le document sous le nom « WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx ».
doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");
Exemple de code source pour la création d’une section répétitive de tableau mappée à une partie XML personnalisée à l’aide d’Aspose.Words pour .NET
// Chemin d'accès à votre répertoire de documents
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
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>");
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();
StructuredDocumentTag repeatingSectionSdt =
new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);
StructuredDocumentTag repeatingSectionItemSdt =
new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);
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);
doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");
C’est ça! Vous avez créé avec succès un tableau avec une section répétitive mappée à un CustomXmlPart dans votre document Word à l’aide d’Aspose.Words pour .NET.