在 C# 中為組創(chuàng)建郵件合并
在 Spire.Doc 中,我們可以使用郵件合并將數(shù)據(jù)源中的多條記錄插入到 Word 模板文檔中的指定區(qū)域。該區(qū)域必須由兩個(gè)具有特殊名稱的合并文件標(biāo)記,如?GroupStart:GroupName?和?GroupEnd:GroupName?,其中GroupStart和GroupEnd表示一個(gè)組的起點(diǎn)和終點(diǎn),它也是該區(qū)域的起點(diǎn)和終點(diǎn)。執(zhí)行郵件合并后,該區(qū)域會(huì)針對(duì)數(shù)據(jù)源中的每條記錄重復(fù)。
為了更好地演示,我們創(chuàng)建了一個(gè)包含合并字段的模板文檔,如下所示:
在這個(gè)模板中,“產(chǎn)品”是組名,我們?cè)谑褂么a執(zhí)行郵件合并時(shí)應(yīng)該使用相同的名稱。合并文件“GroupStart:Products”和“GroupEnd:Products”表示組和區(qū)域的開始和結(jié)束。
代碼片段:
一開始,我們定義了一個(gè)名為“Product”的類,在其中我們創(chuàng)建了一個(gè)構(gòu)造函數(shù)Product(int number,string type,string name,string price,string vendor,string expirydate)并添加了四個(gè)屬性“ Number ”,“ Type ”, “名稱”、“價(jià)格”、“供應(yīng)商”和“到期日期”。
第 1 步:實(shí)例化 Product 類的兩個(gè)對(duì)象并將它們添加到列表中。
Product p1 = new Product(1, "Software", "Spire.Doc", "$799", "E-iceblue", "April 28th,2018"); Product p2 = new Product(2, "Software", "Spire.PDF", "$599", "E-iceblue", "September 15th,2017"); List<Product> list = new List<Product>(); list.Add(p1); list.Add(p2);
第 2 步:加載模板文檔。
Document document = new Document("ProductsList.docx");
第 3 步:使用列表作為數(shù)據(jù)源并為“產(chǎn)品”組執(zhí)行郵件合并。
MailMergeDataTable table = new MailMergeDataTable("Products", list); document.MailMerge.ExecuteGroup(table);
第 4 步:保存文檔。
document.SaveToFile("Output.docx");
執(zhí)行上述代碼后,我們會(huì)得到如下結(jié)果文件:
完整代碼:
using Spire.Doc; using Spire.Doc.Reporting; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MailMerge { class Program { static void Main(string[] args) { Product p1 = new Product(1, "Software", "Spire.Doc", "$799", "E-iceblue", "April 28th,2018"); Product p2 = new Product(2, "Software", "Spire.PDF", "$599", "E-iceblue", "September 15th,2017"); List list = new List(); list.Add(p1); list.Add(p2); Document document = new Document("ProductsList.docx"); MailMergeDataTable table = new MailMergeDataTable("Products", list); document.MailMerge.ExecuteGroup(table); document.SaveToFile("Output.docx"); } } public class Product { public Product(int number, string type, string name, string price, string vendor, string expirydate) { this.Number = number; this.Type = type; this.Name = name; this.Price = price; this.Vendor = vendor; this.ExpiryDate = expirydate; } public int Number { get; set; } public string Type { get; set; } public string Name { get; set; } public string Price { get; set; } public string Vendor { get; set; } public string ExpiryDate { get; set; } } }
歡迎下載|體驗(yàn)更多E-iceblue產(chǎn)品
如需獲取更多產(chǎn)品相關(guān)信息請(qǐng)咨詢慧都在線客服