第 3 章邮件合并 Word可以实现复杂的图文混排,但是一篇文档的排版需要花费较长的时间。对于像邀请函、成绩单、准考证、工资单这类需要批量生成且文档排版样式相同,仅数据信息不一样的文档(例如: 邀请函中的姓名、成绩单中的姓名和成绩等),能否有一种便捷的方法能实现批量生成版式相同的Word文档呢? 掌握Word“邮件合并”,批量生成Word文件,让你的工作事半功倍。 3.1普通邮件合并 范例要求 利用邮件合并,完成邀请函的制作。★ 根据给出的数据源(邀请函数据.xlsx),利用邮件合并,制作邀请函。要求新建Word文档,插入“邀请函背景图片.jpg”和 “邀请函文字.docx”中的文字内容,进行版面排版,利用数据源筛选功能筛选学院为“商学院”和“法学院”的教师作为受邀教师,邮件合并结果按受邀教师的职称排序。完成效果如图3.1所示。 图3.1邀请函制作效果图 相关知识 1. 什么是邮件合并 邮件合并是指Word提供一个文档的格式模板,Excel或Access等数据库提供数据源,邮件合并操作生成后的文档的数量由数据源中的数据条数决定,文档中的数据也是按数据源中的数据次序依次显示,文档的格式由Word提供的模板来确定。例如: 需要生成50人的邀请函,则先用Word建立邀请函的文档格式,然后在Excel中建立一个含有50人的数据文件, 通过邮件合并,可生成50份相同格式的邀请函。 2. 邮件合并建立的方法 邮件合并通常通过普通Word文档创建。首先建立Word文档,完成模板格式的编排,再通过Excel数据源文件(本节内容的数据源均采用Excel文件),插入邮件合并域,最后生成邮件合并的文件。 3. 邮件合并可支持的数据源文件类型 本例中,数据源是Excel表格,邮件合并支持的数据源类型有: Access数据库文件、Excel文件、Word文档、网页、RTF格式、文本文件等,如图3.2所示。如果是Excel文件作为数据源,一般情况下,Excel工作簿有三张工作表,则需要确认数据源在哪张工作表中。 图3.2邮件合并可支持的数据源 4. 邮件合并时新建数据源文件 如果数据源文件未提前创建,也可在邮件选项卡下“开始邮件合并”组中选择“选择收件人”按钮,选择“键入新列表…”弹出如图3.3所示的对话框,输入邮件合并数据。 图3.3建立邮件合并数据源 (1) 通过图3.3所示的“自定义列”可以编辑数据源字段名。 (2) “新建条目”可以增加数据源记录。“删除条目”可以删除已有数据记录。 5. 数据源的筛选与排序 数据源可以设置条件对数据进行筛选,也可以按照指定的顺序对数据进行排序。例如数据源文件中有100条数据,在做邮件合并时,只想取出其中的一部分满足指定条件的数据作为邮件合并的数据源,可以在邮件选项卡“开始邮件合并”组中选择“编辑收件人列表”对已有数据筛选出部分满足条件的记录。例如,对于性别字段,筛选性别为“女”的所有数据作为邮件合并的数据源,如图3.4所示,这是从字段的数据值中直接选取某个数据作为筛选条件,也可以在筛选条件中手动设置某一个条件或多个组合条件来作为筛选条件,如图3.5和图3.6所示,在数据源中筛选五(1)班且语文在80分以上的数据作为邮件合并的数据源,经过筛选后,满足条件的4条记录就是邮件合并的数据源,如图3.7所示。 图3.4字段值中选取数据值作为筛选条件 图3.5筛选 图3.6多个组合条件筛选数据源 图3.7筛选条件为“性别为女且语文成绩在80分以上”的数据源 6. 邮件合并中的文档域 在邮件合并时,需要插入“合并域”,即从指定的数据表中取出对应字段的数据值,数据表中的记录数即为该字段值的条目数。插入“合并域”后,只有在“预览结果”和“完成并合并”后可以看合并后的信息。如: 插入合并域“姓名”字段,在预览结果前,文档中显示 《姓名》,在“预览结果”和“完成并合并”文档后显示的是具体的数据值: 吴予欣、李锦华等,如图3.8所示。 图3.8邮件合并中合并文档前后的效果 操作步骤 1. 制作数据源 本例中已经有数据源(邀请函数据源.xls),数据表中有五条记录,因此我们生成的邮件合并文件也有5个页面。 2. 制作主文档 (1) 主文档排版。设置主文档文字字体、字号并居中对齐。纸张方向: 横向。 (2) 设置背景图片。插入选项卡“图片”,图片工具\格式\环绕文字\衬于文字下方,调整图片大小,使其覆盖所有的文字。 3. 邮件合并 (1) 开始邮件合并。“邮件”选项卡选择“开始邮件合并”组中“信函”按钮。 (2) 选择数据源及筛选数据源数据。选择“选择收件人”组中的“使用现有列表”选择数据源,如果对数据源进行筛选,则可在“编辑收件人列表”中进行筛选,本例中筛选条件为学院仅为“商学院”和“法学院”,结果按“职称”排序。如图3.9和图3.10所示。 图3.9邮件合并数据源筛选条件 图3.10邮件合并结果排序 (3) 插入合并域。光标定位在插入合并域的位置,“邮件”选项卡选择“插入合并域”组,此时会看到由于关联的数据源,此处可以查看到数据源中的所有字段,如图3.11所示。本例中将光标置于“老师”前,插入“姓名”合并域。 (4) 预览结果,完成合并。利用“邮件”选项卡的“预览结果”组选择“预览结果”按钮,可以预览查看邮件合并的内容。单击“完成并合并”按钮,选择“编辑单个文档”,在弹出来的“合并到新文档”里选择“全部记录”即可完成邮件合并。 图3.11插入合并域按钮显示所有字段名 注意问题 完成邮件合并操作后,如果打开域文档(插入邮件合并域后的文档),会出现如图3.12所示的图片,说明此文档之前已有关联的数据源文件,此时再次打开主文档文件,会询问是否关联数据源文件,需要单击“是”再次关联主文档与数据源文件,将数据源中的字段读取到主文档。如果单击“否”则取消主文档和数据源文件的关联,也就无法制作邮件合并,如果需要再次生成邮件合并文件,则需要重新选择“选择收件人”组中的“使用现有列表”选择数据源。 图3.12主文档与数据源文件关联 3.2带条件的邮件合并 范例要求 使用规则进行邮件合并操作★★ 根据给出的数据源(学生档案数据.xlsx),利用邮件合并,制作学生成绩单。要求: 学生“评定等级”栏数据通过条件判断实现,评定等级栏结论为: 甲、乙、丙、丁四个等级,评定等级如表3.1所示。完成效果如图3.13所示。 表3.1总分与评定等级 总分评 定 等 级 ≥270甲 [240,270)乙 [180,240)丙 <180丁 图3.13成绩单制作效果图 相关知识 1. 文档域设置条件判断 可以使用邮件合并中的“规则”中的“如果……那么……否则……”规则进行双分支条件判断,类似于Excel操作中的IF语句。对于多分支条件判断,则是在前一个“规则”的“否则”处再嵌套一次该“规则”。如果条件有两个分支,则使用一次“规则”就可以,如果条件有三个分支,则需要由两个“规则”嵌套实现,四个分支,需要由三个“规则”嵌套实现,依此类推。根据某一个合并域的条件显示不同的结果。每个分支条件切换到代码中可以查看分支代码,每个分支条件由大括号括起来。本例使用的是四分支条件判断结构,需要书写三次规则并进行嵌套。 2. 常用的组合键 Ctrl+A: 全选。Alt+F9: 切换代码/文档域。 操作步骤 1. 制作主文档 图3.14主文档 建立一个6行3列的表格,通过单元格拆分合并,完成如图3.14所示的主文档。 2. 关联数据源 在Excel表中,将所有需要打印“成绩单”的学生信息及各科目成绩,建立一个如图3.15所示的Excel表格(学生信息表.xlsx)作为邮件合并的数据源。 图3.15作为数据源的Excel文件 3. 邮件合并 (1) 选择数据源。在“邮件”选项卡的“开始邮件合并”组中,单击“选择收件人”组中的“使用现有列表”选项,选择数据源“学生信息表.xlsx”。 (2) 插入合并域。将光标分别置于各字段后面的空白单元格(除“评定等级”),单击“插入合并域”组的“选择字段”选项,插入相应的合并域字段。 (3) 编辑带条件的合并域。将光标置于“评定等级”后面的空白单元格中,在“邮件”选项卡的“编写和插入域”组中单击“规则”,选择“如果……那么……否则……”规则。在如图3.16所示的条件判断窗口,在“域名”中选择“总分”字段,在“比较条件”中选择“大于等于”,在“比较对象”中输入: 270,在“则插入此文字”中输入第一个分支条件满足后执行的语句,此时输入“甲”。执行该语句即完成了双分支的条件判断。此时看到“评定等级”栏目已显示当前记录的结果。 图3.16规则条件 4. 条件嵌套 按组合键“Ctrl+A”全选整个主文档。单击组合键“Alt+F9”将文档切换至代码编辑页面,此时我们会看到双分支域代码: {IF{MERGEFIELD总分}>=270“甲”“乙”}。选择代码中的“乙”,保留文字“乙”前后的双引号,再次单击“邮件”选项卡“编写和插入域”组的“规则”按钮,选择“如果……那么……否则……”规则,在弹出来的条件判断窗口中进行如 图3.17所示的选择和输入。完成后, 图3.17第一次条件判断 在域代码中选中“丙”这个字,再次执行条件判断,输入信息如图3.18所示。完成3个分支后,域代码如图3.19所示。 图3.18第二次条件判断 图3.19完成规则设置后的3分支域代码 3.3图片邮件合并 范例要求 图片邮件合并★★ 利用图片邮件合并,制作完成如图所示的武汉名片(共6个页面),完成后保存为PDF格式文件。完成效果如图3.20和3.21所示(这里仅提供前两个页面效果)。 图3.20效果完成图页面1效果 图3.21效果完成图页面2效果 相关知识 图片域不同于普通的文本域,不能和文本域一样直接插入。直接插入图片域,显示的是图片文件的文件名,而不是图片文件的内容。 邮件合并中插入图片域,需要调用“域”对象,选择“插入”选项卡的“文档部件”组的“插入域”中的“IncludePicture”,在“域属性”填充相应的图片文件名或图片网址。其中图片文件名可临时取一个名称指代一个不存在的文件名,然后通过插入合并域替换成具体的图片文件的文件名。插入图片域后,可以通过组合键Alt+F9切换域代码。 操作步骤 1. 制作主文档 插入一个3行2列的表格,如图3.22所示。 2. 关联数据源 在“邮件”选项卡的“开始邮件合并”组中,“选择收件人”,选择“实验3: 武汉名片数据源.xlsx”。 3. 插入除照片字段外的合并域 在“邮件”选项卡中选择“编写和插入域”组中选择“插入合并域”,将除“照片”字段外的其他字段(名称、简介、推荐指数)分别插入到文档中的相应位置。 4. 插入图片域 (1) 单击“插入”选项卡,选择“文档部件”中的“域”,在“类别”中选择“链接和引用”,域名: IncludePicture,文件名任意取,此例中文件名取为数字“1”。如图3.23所示。 图3.22图片邮件合并主文档 图3.23插入图片域 (2) 选中文件名“1”,保留双引号,只选中数字“1”。在“邮件”选项卡下选择“插入合并域”的“照片”域,替换数字1,完成图片域的插入操作。 5. 保存邮件合并后生成的文件 在“邮件”选项卡的“完成”组中选择“完成并合并”。完成后,保存合并后的文件,此时必须将 邮件合并后的文档保存放至图片文件所在的文件夹,即合并后的文档与图片文件要在同一个文件夹。 6. 刷新合并后的图片域 在合并后生成的文档中,按下组合键Ctrl+A全选文档中的所有内容,按F9键刷新文档,文件夹中的所有图片将会被正确加载到文档。单击“文件”选项卡下的“另存为”,文档文件保存为PDF文件。 注意问题 1. 预览图片为同一张图片的处理 预览结果时图片显示的是同一张图片,将光标置于图片单元格,刷新(按F9键)。 2. 生成后的文档显示的图片均相同的处理 需要将生成后的文档保存至图片所在路径下,全选所有文档,按F9键刷新文档。 3. 图片无法显示的原因 数据源中的图片字段的数据必须和图片文件名一致,如果两者不一致,则会导致图片无法显示。例如: 数据源中的图片名为“黄鹤楼.jpg”,而图片文件名称取为“黄鹤风景.png”,此时,数据源中的图片数据和图片文件的名称不一致,则会导致图片无法显示。 4. 图片与表格单元格的大小不一致的处理 本例中图片与表格单元格大小不相称时,由于插入的图片尺寸过大而将表格格式强制变形,解决方法: 在“表格属性”选项中取消“自动重调尺寸以适应内容”勾选。 5. 笔记本计算机的组合键说明 在图片邮件合并操作中用到了很多组合键,组合键Alt+F9用于域代码和文档文件间的切换。 如果是笔记本计算机,需要在这些组合键的基础上再加上Fn按键。例如: 笔记本计算机的域代码切换功能的组合键是“Fn+Alt+F9”。 3.4大纲视图拆分合并文件 范例要求 利用大纲视图拆分文件★★★ 利用大纲视图方式拆分邮件合并文件,将范例3.3所做的邮件合并完成后的文档文件“武汉名片”修改后,让文档中的每个景点记录作为一个独立的Word文档,效果如图3.24所示。 图3.24邮件合并后的大纲视图拆分后的效果图 相关知识 1. 大纲视图拆分文档 邮件合并后的文档中有多个页面,每个页面对应数据源中的一行记录。通过大纲视图拆分,可以将邮件合并中的每行记录处理为一个独立的文档文件。在范例3.3中,邮件合并后生成一个具有6个页面的文件,通过大纲视图拆分,得到6个独立的景点文档文件,如图3.24所示。范例3.2中的邮件合并后文档,也可以通过大纲视图拆分为多个独立的学生成绩文件。 2. 主控文档和子文档 通过大纲视图“显示文档”创建的为主控文档,存储内容为每个子文档的路径及文件名; 子文档即通过大纲视图拆分后的每个子文档。通过“大纲”选项卡的“主控文档”中选择“折叠子文档”按钮,可以看到合并后的文档内容不再为原合并内容,而是所有分页文档的链接。如图3.25所示。当每个子文档的内容发生改变后,主控文档的内容也会改变。 图3.25大纲视图下折叠子文档后主控文件内容 3. 分节符的处理 使用大纲视图作文档的拆分时,会自动在邮件合并文件中增加一个“分节符(连续)”,因此在做大纲视图拆分邮件合并文件时,需要删除每个子文档页面最后的空白页。 操作步骤 1. 新建主文档 建立如图3.26所示的邮件合并主文档。 2. 设置一级标题 光标定位在表格的前面,按下回车键,在“邮件”选项卡的“编写和插入域”组中选中“插入合并域”中的“名称”文本域; 在表格上方插入“《名称》”文本域,如图3.27所示。在“开始”选项卡的“样式”组中,将插入的“《名称》”文本域设置为标题1的样式。 图3.26主文档 图3.27插入“名称”域后的邮件合并效果 3. 完成邮件合并 按照范例3.3中的步骤完成图片邮件合并。 4. 利用标题1拆分合并文件 选择“大纲”选项卡下“大纲工具”组中单击“显示级别”按钮,选择“1级”标题。选中所有的1级标题,在“主控文档”组中单击“显示文档”,再单击“创建”,创建主控文档,此时所有的景点上加了一个框,且每个框的下面增加了一个“分节符(下一页)”,如图3.28所示,每个框的内容对应一个Word文档。 图3.28创建主控文档后每个页面标题加框显示 5. 去掉子文档最后的空白页 关闭大纲视图,回到合并生成后含有六个页面的文档文件中,单击“文件”选项卡的“选项”中的“显示”选项,勾选“显示所有格式标记”,邮件合并自动会产生“分节符(下一页)”,大纲视图拆分也会产生“分节符(连续)”。此时需要删除“分节符(连续)”的空白页,在“开始”选项卡的“编辑”组中选择“替换”,在查找内容中输入“^b”,替换为空(不输入任何字符),如图3.29所示,单击“全部替换”出现如图3.30所示的弹窗。 图3.29删除分节符 图3.30删除全部空白页 6. 保存 单击“保存”按钮,保存主控文档至图片及主文档保存的文件夹下,此时可以看到有6个以景名名称命名的Word文件,即该文件夹下除图片文件外,有合并前的主文档,利用大纲视图制作的1个主控文档及6个子文档文件。 注意问题 利用大纲合并生成的文件有时会出现在一个文档后出现空白页的现象,这是由于在大纲视图中产生分节符(连续)而引起的,此时在合并后的文档中用批量替换: 分节符(^b)替换为空即可消除多余的空白页。 练习 根据“家长会.docx”文档,通过邮件合并完成含有10页的文档“正式家长会通知.doc”。具体要求如下。 1. 制作邮件合并域文档,内容包括家长会通知、期中成绩报告单及家长会通知回执,且所有内容在一个页面显示。如图3.31所示。★ 2. 根据“学生成绩表.XLSX”数据源,通过邮件合并制作“期中成绩报告单”。要求从数据源中筛选学号为WH192001~WH192005,WH192016~WH192020的10位同学制作家长会通知。★ 3. 在“尊敬的”和“学生家长”之间插入学生姓名,在“期中考试成绩报告单”的相应单元格中分别插入学生姓名、学号、各科成绩、总分,以及班级各科平均分(成绩均保留两位小数)。保留两位小数在域代码中增加“/#0.00”,如图3.32所示。将 Excel工作表“学生成绩表.XLSX”中的班级平均分输入到下表中。★★ 图3.31邮件合并生成文档 图3.32平均分字段保留两位小数