C语言C# 创立邮件合并模板并联合文本、图片

对此Word中的邮件合并功效,用户可以将邮件合并后的结果文档保存并打印,也可以因而邮件的花样发送,在诸多场合需要采纳到此效能。这对于编程人员,我们也可以在C#言语环境中通过代码的款型来实现。依据需要先创制邮件合并模板后,可统一文本和图表,在下边的方法中,需要使用到零部件C语言,Free
Spire.Doc for
.NET
。创立模板前,需先安装该器件,注意添加引用该零件dll文件到控制台应用程序中,同时添加命名空间。

一、创立邮件合并模板

先是步:添加命名空间

using System;
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using Spire.Doc.Fields;

其次步:紧要代码段

//创建一个Document类对象,并添加Section
Document document = new Document();
Section section = document.AddSection();

//添加段落到Section,并向段落添加文字,设置文字颜色、字体粗细
Paragraph paragraph = section.AddParagraph();
TextRange tr = paragraph.AppendText("人 物 基 本 信 息");
tr.CharacterFormat.TextColor = Color.YellowGreen;
tr.CharacterFormat.Bold = true;

//添加文本,并添加合并域“Image:Portrait”
paragraph.AppendText("\n人 物 肖 像 : ");
paragraph.AppendField("Image:Portrait", FieldType.FieldMergeField);

//添加文本,并添加合并域“Name”
paragraph.AppendText("\n姓 名 : ");
paragraph.AppendField("Name", FieldType.FieldMergeField);

//添加文本,并添加合并域“Nation”
paragraph.AppendText("\n民 族 :");
paragraph.AppendField("Nation", FieldType.FieldMergeField);

//添加文本,并添加合并域“Nationality”
paragraph.AppendText("\n国 籍 : ");
paragraph.AppendField("Nationality", FieldType.FieldMergeField);

//添加文本,并添加合并域“Graduated From”
paragraph.AppendText("\n院 校 : ");
paragraph.AppendField("Graduated From", FieldType.FieldMergeField);

//保存并打开文档
document.SaveToFile("模板.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("模板.docx");

姣好上述步骤后,调试运行程序,生成文书(可在项目文件下bin>Debug中查看)

如下图:

C语言 1

二:合并文本、图片

在成就模板创立之后,可添加文本和图表,如下:

首先步:添加命名空间

using System;
using Spire.Doc;
using System.Drawing;
using Spire.Doc.Reporting;

其次步:紧要代码段

static void Main(string[] args)
        {
            //实例化一个Document类,并加载文档模板
            Document doc = new Document();
            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\模板.docx");
            var textFieldNames = new string[] { "Name", "Nation", "Nationality", "Graduated From"};
            var textFieldValues = new string[] { "乔 治•华 盛 顿 (George Washington)", "美 利 坚 民 族", "美 国", "威 廉 与 玛 丽 学 院 (William and Mary)"};
            var imageFieldNames = new string[] { "Portrait" };
            var imageFieldValues = new string[] { @"C:\Users\Administrator\Desktop\images\华盛顿.jpg" };

            //合并文本到模板
            doc.MailMerge.Execute(textFieldNames, textFieldValues);

            //创建合并图片自定义事件
            doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField);

            //合并图片到模板
            doc.MailMerge.Execute(imageFieldNames, imageFieldValues);

            //保存并打开文档
            doc.SaveToFile("result.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("result.docx");
        }
        //添加自定义事件载入图片
        static void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field)
        {
            string filePath = field.FieldValue as string;
            if (!string.IsNullOrEmpty(filePath))
            {
                field.Image = Image.FromFile(filePath);
            }
        }

运行程序,生成文书,如下图:

 C语言 2

如上全体内容为本文创制邮件合并模板并统一文本和图片的法子讲述,方法中运用到的零件Spire.Doc
for
.NET在拍卖Word文档方面拥有很好的帮带效用,感兴趣的话可以出手试试。如若本文对你富有帮衬,欢迎转载(转载请讲明出处)。