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 demInsertCellUndWrite 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.