加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# 创建邮件合并模板并合并文本、图片

发布时间:2020-12-16 01:06:27 所属栏目:百科 来源:网络整理
导读:对于Word中的邮件合并功能,用户可以将邮件合并后的结果文档保存并打印,也可以通过邮件的形式发送,在很多场合需要使用到此功能。那对于编程人员,我们也可以在C#语言环境中通过代码的形式来实现。根据需要先创建邮件合并模板后,可合并文本和图片,在下面

对于Word中的邮件合并功能,用户可以将邮件合并后的结果文档保存并打印,也可以通过邮件的形式发送,在很多场合需要使用到此功能。那对于编程人员,我们也可以在C#语言环境中通过代码的形式来实现。根据需要先创建邮件合并模板后,可合并文本和图片,在下面的方法中,需要使用到组件Free Spire.Doc for .NET 。创建模板前,需先安装该组件,注意添加引用该组件dll文件到控制台应用程序中,同时添加命名空间。

一、创建邮件合并模板

第一步:添加命名空间

using System;
 Spire.Doc;
 Spire.Doc.Documents;
 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姓 名 : Name添加文本,并添加合并域“Nation”
paragraph.AppendText(n民 族 :Nationn国 籍 : Nationalityn院 校 : Graduated From保存并打开文档
document.SaveToFile(模板.docx");

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

如下图:

二:合并文本、图片

在完成模板创建之后,可添加文本和图片,如下:

第一步:添加命名空间

using Spire.Doc.Reporting;

第二步:主要代码段

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

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

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

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

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

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

?

以上全部内容为本文创建邮件合并模板并合并文本和图片的方法讲述,方法中使用到的组件Spire.Doc for .NET在处理Word文档方面具有很好的辅助作用,感兴趣的话可以动手试试。如果本文对你有所帮助,欢迎转载(转载请注明出处)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读