Erstellen eines Tabellenwiederholungsabschnitts, der einem benutzerdefinierten XML-Teil zugeordnet ist

In diesem Tutorial wird gezeigt, 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. Mit dem Wiederholungsabschnitt können Sie Zeilen basierend auf den im benutzerdefinierten XML-Teil gespeicherten XML-Daten dynamisch hinzufügen.

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: Richten Sie das Dokumentenverzeichnis ein

Beginnen Sie mit der Einrichtung des Pfads zu Ihrem Dokumentenverzeichnis. Ersetzen"YOUR DOCUMENT DIRECTORY" mit dem tatsächlichen Pfad zu dem 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 vonDocument Klasse und aDocumentBuilder um den Inhalt des Dokuments zu erstellen.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Schritt 3: Fügen Sie benutzerdefinierte XML-Daten zu einem CustomXmlPart hinzu

Ein … kreierenCustomXmlPart und benutzerdefinierte XML-Daten hinzufügen. In diesem Beispiel erstellen wir einen XML-String, der 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 Sie eine Tabelle und Tabellenstruktur

Beginnen Sie mit der Erstellung einer Tabelle mitStartTable Methode derDocumentBuilder . Fügen Sie Tabellenzellen und Inhalte mit hinzuInsertCell 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 von festSetMapping Methode derXmlMapping Eigentum. 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 Wiederholungsabschnitt an.

StructuredDocumentTag repeatingSectionItemSdt = 
	new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);

Ein … kreierenRowum jedes Element im Wiederholungsabschnitt darzustellen und an das Wiederholungsabschnittselement anzuhängen.

Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);

Schritt 7: Fügen Sie Inhaltssteuerelemente im Wiederholungsabschnitt hinzu

ErstellenStructuredDocumentTag Objekte mitSdtType.PlainText

um die Inhaltssteuerelemente für Titel und Autor darzustellen. Legen Sie die XML-Zuordnung für jedes Inhaltssteuerelement mithilfe von festSetMapping Methode derXmlMapping Eigentum. In diesem Beispiel ordnen wir das Titelsteuerelement zu/books[1]/book[1]/title[1] und die Autorenkontrolle 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 mit im angegebenen VerzeichnisSave 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, mithilfe von Aspose.Words für .NET

	// Pfad zu Ihrem Dokumentenverzeichnis
	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 mit Aspose.Words für .NET erfolgreich eine Tabelle mit einem sich wiederholenden Abschnitt erstellt, der einem CustomXmlPart in Ihrem Word-Dokument zugeordnet ist.