當合併列印中,如果我們需要每一筆資料就長出一個Table,要如何做呢?
我們要如何透過 Aspose.Words 的 MailMerge 來合併列印出以下的內容呢?
首先,我們先將每個欄位對應的 MergeField 的功能變數加入,然後在 Table 的上下,
加入 TableStart:DataTable的名稱及 TableEnd:DataTable的名稱 的 MergeField,如下,
再來在程式多設定 MailMerge.CleanupOptions 的選項(MailMergeCleanupOptions.RemoveEmptyParagraphs),不然每個Table之間會有空白列,如下,
程式如下,
//http://www.aspose.com/community/forums/thread/89422/mail-merge-region-for-multiple-rows.aspx
DataSet ds = new DataSet();
DataTable dt = new DataTable("TableD");
dt.Columns.Add("REL_NAME", typeof(string));
dt.Columns.Add("CNAME", typeof(string));
dt.Columns.Add("CMP_NAME", typeof(string));
dt.Columns.Add("ADDRESS", typeof(string));
dt.Columns.Add("YEAR", typeof(Int32));
dt.Columns.Add("總收入", typeof(decimal));
dt.Rows.Add("借款人", "Kim哥", "655", "台北市德惠街655號", 10, 1500);
dt.Rows.Add("配偶", "Me姐", "355", "台北市一通街55號", 1, 500);
dt.Rows.Add("保人1", "打哥大", "655", "台北市德惠街655號", 1, 300);
ds.Tables.Add(dt);
Aspose.Words.License license = new Aspose.Words.License();
license.SetLicense("Aspose.Words.lic");
Aspose.Words.Document doc = new Aspose.Words.Document(@"D:\Aspose\d1.docx");
doc.MailMerge.CleanupOptions = MailMergeCleanupOptions.RemoveEmptyParagraphs;
doc.MailMerge.ExecuteWithRegions(ds);
doc.Save(@"D:\Aspose\d1Result.docx");
參考資料
透過 Aspose.Words 來做有RowSpan的合併列印
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^