2种方法邮件合并,用Word自带的和C#代码谁更方便?

有些通知书、通用信函、座位表、准考证之类的,一次性要做很多份,使用word中的邮件合并功能几分钟就可以制作成百上千份,用C#代码更是一键完工,那么哪一个才最省事儿呢?

方法1:Excel+word邮件合并的步骤

需要一份excel文件,文件中存放了每个人的信息。

2种方法邮件合并,用Word自带的和C#代码谁更方便?

需要一份word的模板。以录取通知书为例,首先在word中插入背景图片,接着在图片上插入文本框,并输入必要的文字,除了个人信息之外的,其他的内容都填写完整,并排版好。

2种方法邮件合并,用Word自带的和C#代码谁更方便?

切换到“邮件”菜单下,点击“选择收件人”,接着点击“使用现有列表”,然后打开excel信息表。

2种方法邮件合并,用Word自带的和C#代码谁更方便?

切换到“邮件”菜单下,点击“选择收件人”,接着点击“使用现有列表”,然后打开excel信息表。

2种方法邮件合并,用Word自带的和C#代码谁更方便?

点击姓名所在的位置,接着点击“插入合并域”,选择“姓名”,然后点击“插入”。

2种方法邮件合并,用Word自带的和C#代码谁更方便?

重复步骤3,直到把所有的个人信息域都添加斤模板为止。最后点击“完成并合并”下的“编辑单个文档”,并点击“全部”,点击“确定”。

2种方法邮件合并,用Word自带的和C#代码谁更方便?

这种方式适用于小数量单批次使用,比如座次表、通知信件什么的,如果是反复使用、大量数据的邮件,请看下方用代码实现的邮件合并方式。

方法2:C#实现邮件合并

  • 先下载Spire.Doc for .NET功能类库,并引用到软件的程序集;
  • 再制作一个word的模板;
  • 代码实现,引入来自数据源的字段,并在代码中绑定word模板中的字段,当即完工!

来看看我们的实现代码:

using System;
using System.Windows.Forms;
using Spire.Doc;

namespace MailMerage
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Document document = new Document();
            document.LoadFromFile(@"..\..\..\..\..\..\Data\邮件合并模板.doc");
            // 如果是多个数据源,用foreach、for等循环赋值、保存
            string[] filedNames = new string[]{"Contact Name","Fax","Date"};//字段
            string[] filedValues = new string[]{"John Smith","+1 (69) 123456",System.DateTime.Now.Date.ToString()};//给字段复制
            document.MailMerge.Execute(filedNames, filedValues); //执行赋值
            document.SaveToFile("邮件合并.doc", FileFormat.Doc);//保存
        }
    }
}
上一篇:sqlite 数据类型


下一篇:word样式集技巧小结