Vytvoření části opakování tabulky mapované na vlastní část XML

Tento tutoriál ukazuje, jak vytvořit tabulku s opakující se částí mapovanou na vlastní část XML v dokumentu aplikace Word pomocí Aspose.Words for .NET. Opakující se část vám umožňuje dynamicky přidávat řádky na základě dat XML uložených ve vlastní části Xml.

Předpoklady

Abyste mohli postupovat podle tohoto návodu, musíte mít následující:

  • Nainstalovaná knihovna Aspose.Words for .NET.
  • Základní znalost C# a Word Processing s dokumenty Word.

Krok 1: Nastavte adresář dokumentů

Začněte nastavením cesty k adresáři dokumentů. Nahradit"YOUR DOCUMENT DIRECTORY" se skutečnou cestou k adresáři, kam chcete dokument uložit.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Krok 2: Vytvořte dokument a DocumentBuilder

Vytvořte novou instanci souboruDocument třída a aDocumentBuilder k vytvoření obsahu dokumentu.

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

Krok 3: Přidejte vlastní data XML do CustomXmlPart

VytvořitCustomXmlPart a přidat do něj vlastní data XML. V tomto příkladu vytvoříme řetězec XML představující kolekci knih s jejich názvy a autory.

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>");

Krok 4: Vytvořte tabulku a strukturu tabulky

Začněte vytvářet tabulku pomocíStartTable metodaDocumentBuilder . Přidejte buňky tabulky a obsah pomocíInsertCell aWrite metody.

Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();

Krok 5: Vytvořte opakující se oddíl namapovaný na vlastní XML

VytvořitStructuredDocumentTag sSdtType.RepeatingSection reprezentovat opakující se část. Nastavte mapování XML pro opakující se sekci pomocíSetMapping metodaXmlMapping vlastnictví. V tomto příkladu mapujeme opakující se sekci na/books[1]/book.

StructuredDocumentTag repeatingSectionSdt =
	new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);

Krok 6: Vytvořte položku Opakující se sekce a přidejte buňky

VytvořitStructuredDocumentTag sSdtType.RepeatingSectionItem reprezentovat opakující se položku sekce. Připojte jej jako dítě do opakující se části.

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

VytvořitRowreprezentovat každou položku v opakující se sekci a připojit ji k položce opakující se sekce.

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

Krok 7: Přidejte ovládací prvky obsahu do sekce opakování

VytvořitStructuredDocumentTag předměty sSdtType.PlainText

reprezentovat název a ovládací prvky obsahu autora. Nastavte mapování XML pro každý ovládací prvek obsahu pomocíSetMapping metodaXmlMapping vlastnictví. V tomto příkladu mapujeme ovládací prvek title na/books[1]/book[1]/title[1] a autor to řídí/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);

Krok 8: Uložte dokument

Uložte upravený dokument do zadaného adresáře pomocíSave metoda. Zadejte požadovaný název souboru s příslušnou příponou souboru. V tomto příkladu dokument uložíme jako “WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx”.

doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");

Příklad zdrojového kódu pro vytvoření části s opakováním tabulky namapované na vlastní část XML pomocí Aspose.Words for .NET

	// Cesta k vašemu adresáři dokumentů
	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");

A je to! Úspěšně jste vytvořili tabulku s opakující se částí namapovanou na CustomXmlPart ve vašem dokumentu Word pomocí Aspose.Words for .NET.