原創|其它|編輯:郝浩|2012-08-15 22:21:50.000|閱讀 1236 次
概述:在使用Aspose.Words控件來進行郵件合并時,如果需要將數據進行一些處理,比如在姓名前面添加特殊符號,對于編碼的程序進行詳細的介紹。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在使用Aspose.Words控件來進行郵件合并時(另見:Aspose.Words控件操作實例—郵件合并功能概述),如果需要將數據進行一些處理,比如在姓名前面添加特殊符號,我們可以采取添加新的程序代碼的方式來完成,下面是詳細的說明:
新增合并域事件
新增合并域事件,事件名稱為MailMerge_MergeField。
doc.MailMerge.MergeField += new Aspose.Words.Reporting.MergeFieldEventHandler(MailMerge_MergeField);
宣告郵件合并事件
宣告郵件合并事件MailMerge_MergeField,其中重要的參數為e,可以取得郵件合并過程中的所有數據。
private void MailMerge_MergeField(object sender, Aspose.Words.Reporting.MergeFieldEventArgs e)
取得郵件合并資料
運用e變量可以取得郵件合并數據,其中e.FieldName為目前郵件合并的域名;e.FieldValue為目前郵件合并的域值,而運用e.Text可以改變其值。
if (e.FieldName == "學生姓名" )
if (e.FieldValue.ToString()=="張三")
e.Text="*張三";
完整程序代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Aspose.Words;
using Aspose.Words.Reporting; //在使用郵件合并功能時需引用此命名空間。
namespace MergeField
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Document doc = new Document("MergeTemplate.docx");
doc.MailMerge.MergeField += new Aspose.Words.Reporting.MergeFieldEventHandler(MailMerge_MergeField);
doc.MailMerge.Execute(GetDataSource());
doc.Save("MergeResult.docx");
}
//傳回郵件合并的數據,傳回的數據可以是下列型態:DataSet、DataTable、DataView、DataSet、IDataReader。
private DataTable GetDataSource()
{
DataTable table = new DataTable();
table.Columns.Add("學生姓名");
table.Columns.Add("電話");
table.Rows.Add("張三","03-5555555");
table.Rows.Add("李四","03-5522555");
table.Rows.Add("王武","03-5554455");
return table;
}
private void MailMerge_MergeField(object sender, Aspose.Words.Reporting.MergeFieldEventArgs e)
{
if (e.FieldName == "學生姓名" )
{
if (e.FieldValue.ToString()=="張三")
e.Text="*張三";
}
}
}
}
小結
本篇介紹有關Aspose.Words控件件在郵件合并上的功能,對于要從系統輸出報表時,郵件合并的功能就顯得非常重要。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網