Erstellen eines sich wiederholenden Tabellenabschnitts, der einem benutzerdefinierten XML-Teil zugeordnet ist
Dieses Tutorial zeigt, wie Sie mit Aspose.Words für .NET eine Tabelle mit einem sich wiederholenden Abschnitt erstellen, der einem benutzerdefinierten XML-Teil in einem Word-Dokument zugeordnet ist. Der sich wiederholende Abschnitt ermöglicht Ihnen das dynamische Hinzufügen von Zeilen basierend auf den im benutzerdefinierten XML-Teil gespeicherten XML-Daten.
Voraussetzungen
Um diesem Tutorial folgen zu können, benötigen Sie Folgendes:
- Aspose.Words für .NET-Bibliothek installiert.
- Grundkenntnisse in C# und Textverarbeitung mit Word-Dokumenten.
Schritt 1: Einrichten des Dokumentverzeichnisses
Beginnen Sie mit der Einrichtung des Pfades zu Ihrem Dokumentverzeichnis. Ersetzen Sie"YOUR DOCUMENT DIRECTORY"
durch den tatsächlichen Pfad zum Verzeichnis, in dem Sie das Dokument speichern möchten.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Schritt 2: Erstellen Sie ein Dokument und einen DocumentBuilder
Erstellen Sie eine neue Instanz desDocument
Klasse und eineDocumentBuilder
um den Inhalt des Dokuments zu erstellen.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Schritt 3: Hinzufügen benutzerdefinierter XML-Daten zu einem CustomXmlPart
Ein … kreierenCustomXmlPart
und fügen Sie ihm benutzerdefinierte XML-Daten hinzu. In diesem Beispiel erstellen wir eine XML-Zeichenfolge, die eine Sammlung von Büchern mit ihren Titeln und Autoren darstellt.
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>");
Schritt 4: Erstellen einer Tabelle und einer Tabellenstruktur
Beginnen Sie mit dem Erstellen einer Tabelle mit demStartTable
Methode derDocumentBuilder
. Fügen Sie Tabellenzellen und Inhalt hinzu mit demInsertCell
UndWrite
Methoden.
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();
Schritt 5: Erstellen Sie den sich wiederholenden Abschnitt, der benutzerdefiniertem XML zugeordnet ist.
Ein … kreierenStructuredDocumentTag
mitSdtType.RepeatingSection
um den sich wiederholenden Abschnitt darzustellen. Legen Sie die XML-Zuordnung für den sich wiederholenden Abschnitt mithilfe derSetMapping
Methode derXmlMapping
Eigenschaft. In diesem Beispiel ordnen wir den sich wiederholenden Abschnitt zu/books[1]/book
.
StructuredDocumentTag repeatingSectionSdt =
new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);
Schritt 6: Erstellen Sie das sich wiederholende Abschnittselement und fügen Sie Zellen hinzu
Ein … kreierenStructuredDocumentTag
mitSdtType.RepeatingSectionItem
um das sich wiederholende Abschnittselement darzustellen. Hängen Sie es als untergeordnetes Element an den sich wiederholenden Abschnitt an.
StructuredDocumentTag repeatingSectionItemSdt =
new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Ein … kreierenRow
um jedes Element im sich wiederholenden Abschnitt darzustellen und es an das sich wiederholende Abschnittselement anzuhängen.
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);
Schritt 7: Inhaltssteuerelemente im Wiederholungsbereich hinzufügen
ErstellenStructuredDocumentTag
Objekte mitSdtType.PlainText
um die Inhaltssteuerelemente „Titel“ und „Autor“ darzustellen. Legen Sie die XML-Zuordnung für jedes Inhaltssteuerelement mithilfe derSetMapping
Methode derXmlMapping
Eigenschaft. In diesem Beispiel ordnen wir das Titelsteuerelement zu/books[1]/book[1]/title[1]
und der Autor Kontrolle zu/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);
Schritt 8: Speichern Sie das Dokument
Speichern Sie das geänderte Dokument im angegebenen Verzeichnis mit demSave
Methode. Geben Sie den gewünschten Dateinamen mit der entsprechenden Dateierweiterung an. In diesem Beispiel speichern wir das Dokument als „WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx“.
doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");
Beispielquellcode zum Erstellen eines sich wiederholenden Tabellenabschnitts, der einem benutzerdefinierten XML-Teil zugeordnet ist, mit Aspose.Words für .NET
// Pfad zu Ihrem Dokumentverzeichnis
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");
Das ist es! Sie haben erfolgreich eine Tabelle mit einem sich wiederholenden Abschnitt erstellt, der mit Aspose.Words für .NET einem CustomXmlPart in Ihrem Word-Dokument zugeordnet ist.