建立映射到自訂 Xml 部件的表重複部分
內容
[
隱藏
]介紹
在本教學中,我們將逐步介紹使用 Aspose.Words for .NET 建立具有重複部分的資料表的過程,該表會對應到自訂 XML 部分。這對於基於結構化資料動態生成文件特別有用。
先決條件
在我們開始之前,請確保您具備以下條件:
- 已安裝 Aspose.Words for .NET 程式庫。您可以從阿斯普斯網站.
- 對 C# 和 XML 有基本了解。
導入命名空間
確保在您的專案中包含必要的命名空間:
using Aspose.Words;
using Aspose.Words.Markup;
using Aspose.Words.Tables;
步驟1:初始化Document和DocumentBuilder
首先,建立一個新文件並初始化DocumentBuilder
:
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
第 2 步:新增自訂 XML 部分
將自訂 XML 部分新增至文件。此 XML 包含我們想要對應到表格的資料:
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>");
第三步:建立表結構
接下來,使用DocumentBuilder
建立表頭:
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();
第 4 步:建立重複部分
創建一個StructuredDocumentTag
(SDT) 重複部分並將其對應到 XML 資料:
StructuredDocumentTag repeatingSectionSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", "");
table.AppendChild(repeatingSectionSdt);
第 5 步:建立重複部分項目
為重複部分項目建立 SDT 並將其新增至重複部分:
StructuredDocumentTag repeatingSectionItemSdt = new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);
Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);
步驟 6:將 XML 資料對應到表格單元格
為標題和作者建立 SDT,將它們對應到 XML 數據,並將它們附加到行中:
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);
步驟7:儲存文檔
最後將文檔儲存到指定目錄:
doc.Save(dataDir + "WorkingWithSdt.CreatingTableRepeatingSectionMappedToCustomXmlPart.docx");
結論
透過執行這些步驟,您已使用 Aspose.Words for .NET 成功建立了一個資料表,其中的重複部分會對應到自訂 XML 部分。這允許基於結構化資料生成動態內容,使文件創建更加靈活和強大。
常見問題解答
什麼是結構化文件標籤 (SDT)?
SDT,也稱為內容控件,是文件中用於包含結構化資料的有界區域。
我可以在自訂 XML 部分中使用其他資料類型嗎?
是的,您可以使用任何資料類型建立自訂 XML 部分並相應地對應它們。
如何為重複部分添加更多行?
重複部分自動複製映射 XML 路徑中每個項目的行結構。