用户可以将邮件合并后的结果文档保存并打印,也可以通过邮件的形式发送。那对于编程人员,我们也可以在C#语言代码来实现。根据需要先创建邮件合并模板后,可合并文本和图片,在下面的方法中,需要使用到组件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中查看)
如下图:
二:合并文本、图片
在完成模板创建之后,可添加文本和图片,如下:
第一步:添加命名空间
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); } }
运行程序,生成文件,如下图:
以上全部内容为本文创建邮件合并模板并合并文本和图片的方法讲述,欢迎转载(转载请注明出处)。
相关推荐
网上到处都找不到采用Microsoft.Office.Interop.Word如何控制Word实现邮件合并功能的方法,只好自己研究,终于成功,将研究成果分享。内附源代码和说明文档。
用c#实现word文件的创建,合并This article shows where the SmartNavigation and MaintainScrollbackPositionOnPostback features fall short in maintaining tree position on postback and provides a JavaScript...
C#操作Word——C#向Word文档中写入文字
本程序演示C#如何完成word文档合并。 在此基础上演示如何在word文档中进行基本的读写的操作。
C#实现通过模板自动创建Word文档的方法,详细讲述了C#生成Word文档的实现方法,是非常实用的技巧,需要的朋友可以参考下 实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧。分享给大家供大家参考。 ...
使用c#实现动态规划法——求解矩阵连乘问题,包括GUI和逻辑实现。
在VS2008开发平台下,用C#实现的特殊窗体——椭圆形窗体
Word NPOI 合并单元格示例
c#实现车牌识别系统,完整的源码,应用程序、测试模板图片以及实验报告文档,课程设计作业,已经成功测试,可以直接运行的。
C#操作word文档 C#实现Word中表格信息读取
C#版本 NPOI 批量替换Word文档(doc文件)变量的方法。 网上各种代码都是直接替换run,但实际上很多变量是由多个run表示的,并不能直接用,本代码完美支持{变量}替换。
C#实现word文档打印及预览,下载后可以直接复制到程序中使用
向C# 定位Word文档中的某个位置插入文本,向读者说明可以运用的方法,并附有代码。
C#实现的全景图拼接(两张图片合并成一张图片源程序)C#实现的全景图拼接(两张图片合并成一张图片源程序)
用c#实现了棋盘覆盖的逻辑及绘图演示,内含安装包及课程演讲PPT
ASP.NET c# 操作word模板插入文字、图片及表格 这个资源第一次上传是在15年,反正离现在有点年代了,当年肯定是用的起得现在我不做保证哈,目前修改原因是积分太高了,我需要修改一下,意思意思就行,
多张图片垂直合并成1张图片,使用VS2013开发
C#调用Word模板批量打印,简单易用!代码有详细的注释。有什么不好的地方,请大家多多赐教!
通过C#调用NPOI组件生成Word文档,在生成Word文档过程中插入表格以及插入图片,使用到了C#,扩展等技术