用户可以将邮件合并后的结果文档保存并打印,也可以通过邮件的形式发送。那对于编程人员,我们也可以在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); } }
运行程序,生成文件,如下图:
以上全部内容为本文创建邮件合并模板并合并文本和图片的方法讲述,欢迎转载(转载请注明出处)。
相关推荐
本文将深入探讨如何利用C#进行Word文档的二次开发,以实现自动化生成。 首先,我们需要了解C#与Word交互的基础——Microsoft.Office.Interop.Word命名空间。这个命名空间包含了对Word对象模型的访问,让我们能够...
这个RAR压缩包包含了Aspose.Words的核心组件——Aspose.Words.dll,这是一个动态链接库,允许开发者在他们的C#应用程序中直接操作Word文档,而无需依赖Microsoft Word软件。 1. **Aspose.Words.dll**: 这是Aspose....
Spire API文档主要聚焦于Spire的产品之一——Spire.Doc,这是一个强大的C#库,用于处理Microsoft Word文档。本文将深入解析Spire.Doc API的核心概念、功能和使用方法。 Spire.Doc是专为.NET开发者设计的,允许他们...
它支持DOC、DOCX、RTF、HTML等多种格式,并且可以进行复杂的操作,例如模板填充、邮件合并、文档加密、格式转换等。这个DLL文件使得程序员无需依赖Microsoft Office,就能实现对Word文档的高级操作,极大地提高了...
技术运维-机房巡检表及巡检说明
第四次算法分析与设计整理
图像处理项目实战
该资源为jaxlib-0.4.18-cp311-cp311-macosx_11_0_arm64.whl,欢迎下载使用哦!
搭建说明. 运行环境 php5.6 mysql5.6 扩展sg11 前置条件: 前后端分离,需要准备两个域名,一个后台域名,一个前端域名 后端源码修改(cs2.ijiuwu.com批量替换改为你的后端域名)数据库修改(cs3.ijiuwu.com批量替换为你的前端域名)1、创建后台站点,上传后台源码并解压到根目录2、创建前端站点,上传前端源码并解压到根目录 3、创建数据库上传并导入数据库文件 4、修改数据库信息: 后台:app/database.php 前端:application/database.php 前端站点设置 伪静态thinkphp 运行目录public 关闭防跨站 访问后台域名/admin.php进入后台管理 admin 123456 系统-》系统设置-》附件设置-》Web服务器URL 改为你的前端域名 系统-》清前台缓存 改为你的前端域名 点击刷新缓存
【毕业答辩】爆款黑板风教育文艺毕业论文答辩通用模板.pptx
1、文件内容:systemd-devel-219-78.el7_9.9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/systemd-devel-219-78.el7_9.9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
win32汇编环境,对 WM-MOUSEMOVE 消息的理解
车牌识别项目
UE项目开发过程中的一些快捷脚本
lab1的words.txt文件
python、yolo、pytorch
人工智能、大语言模型相关学习资料
图像处理项目实战
python、yolo、pytorch
车牌识别项目