博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 创建邮件合并模板并合并文本、图片
阅读量:5993 次
发布时间:2019-06-20

本文共 3076 字,大约阅读时间需要 10 分钟。

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

一、创建邮件合并模板

第一步:添加命名空间

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

第二步:主要代码段

//创建一个Document类对象,并添加SectionDocument 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# 创建邮件合并模板并合并文本、图片

二:合并文本、图片

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

第一步:添加命名空间

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# 创建邮件合并模板并合并文本、图片

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

转载于:https://blog.51cto.com/eiceblue/2057453

你可能感兴趣的文章
2.5-shell编程初步
查看>>
我的友情链接
查看>>
版本更新的两个重要类
查看>>
[笔记]express request 和 response 对象
查看>>
【新技术】SOA-XML相关知识总结(1)
查看>>
asp生成静态页
查看>>
CentOS_6更改yum源与更新系统
查看>>
media查询尺寸
查看>>
大忽悠JS将失效 显卡帝详解显卡全参数
查看>>
TCP wrapper的访问控制
查看>>
Python中__init__方法介绍
查看>>
邮件客户端相关问题汇总
查看>>
[读书笔记]机器学习:实用案例解析(9)
查看>>
zabbix3.2监控MYSQL状态
查看>>
shell 之 mysql批量杀sleep连接
查看>>
Python学习——实现简单的交互raw_input的使用
查看>>
Python将是人工智能时代的最佳编程语言
查看>>
Java网络编程从入门到精通(15):为什么要使用SocketAddress来管理网络地址
查看>>
MongoDB权威指南学习笔记
查看>>
搞好IT运维管理中人、事、物、流程标准系统,工作高枕无忧
查看>>