概述

Word里面的邮件合并功能是一种可以快速批量操作同类型数据的方式,常见的如数据填充、打印等。其中必不可少的步骤包括用于填充的模板文档、填充的数据源以及实现邮件合并的功能。下面,通过Java程序展示如何来实现创建模板,并通过邮件合并功能来合并文本数据和图片数据的方法,分别以2个示例来展示,即:

1. 创建Word填充模板

2. 邮件合并文本和图片

运行环境

本次程序运行环境如下:

  • 代码编译工具:IDEA
  • Jdk版本:1.8.0
  • Word测试文档:.docx 2013
  • Word jar包工具:free spire.doc.jar 3.9.0

关于jar导入:

下载Free Spire.Doc for Java 到本地后,解压。然后执行如下步骤手动导入jar到Java程序:Project Structure(Shift+Ctrl+Alt+S)打开的界面中选择【Modules】—【Dependencies】,点击“+”,【JARs or directories…】,选择本地路径中的jar包,添加后,勾选,点击“OK”。

Java代码示例

1. 创建Word邮件合并模板

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;public class CreateTemplate {public static void main(String[] args) {//创建Document实例Document document = new Document();document.loadFromFile("test.docx");//获取第一节Section section = document.getSections().get(0);//添加4个段落Paragraph para1 = section.addParagraph();Paragraph para2 = section.addParagraph();Paragraph para3 = section.addParagraph();Paragraph para4 = section.addParagraph();//添加合并域,包括文字域、图片域para1.setText("姓名 : ");para1.appendField("Name", FieldType.Field_Merge_Field);para2.setText("邮件地址: ");para2.appendField("Email Address", FieldType.Field_Merge_Field);para3.setText("日期 : ");para3.appendField("Date", FieldType.Field_Merge_Field);para4.setText("图片:");para4.appendField("Image:image",FieldType.Field_Merge_Field);//保存模板文档document.saveToFile("template.docx", FileFormat.Docx);document.dispose();}
}

模板效果:

2. 邮件合并文本和图片数据

以上面创建模板为例,填充文本数据及图片数据

import com.spire.doc.*;
import com.spire.doc.reporting.MergeImageFieldEventArgs;
import com.spire.doc.reporting.MergeImageFieldEventHandler;import java.text.SimpleDateFormat;
import java.util.Date;public class MailMerge {public static void main(String[] args) throws Exception{//创建Document实例,并加载邮件合并模板文档Document document = new Document();document.loadFromFile("template.docx");//按文本合并域名称,设置合并域的文本值Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = formatter.format(currentTime);String[] textFieldNames  = new String[]{"Name", "Email Address", "Date"};String[] textFieldValues  = new String[]{"亚当斯密", "123456@163.com", dateString};//合并文本到模板document.getMailMerge().execute(textFieldNames,textFieldValues  );//按图片合并域名称,设置图片路径值String[] imageFieldNames  = new String[]{"image"};String[] imageFieldValues  = new String[]{"logo.jpg"};//调用邮件合并事件加载图片document.getMailMerge().MergeImageField = new MergeImageFieldEventHandler(){public void invoke(Object sender, MergeImageFieldEventArgs args){mailMerge_MergeImageField(sender, args);}};//执行邮件合并document.getMailMerge().execute(imageFieldNames, imageFieldValues);//保存文档document.saveToFile("result.docx", FileFormat.Docx);}//创建邮件合并事件用于加载图片private static void mailMerge_MergeImageField(Object sender, MergeImageFieldEventArgs field) {String filePath = (String) field.getFieldValue();if (!filePath.isEmpty()){field.setImage(filePath);}}
}

合并效果:

—End—

Java 在Word中创建邮件合并模板并合并文本和图片相关推荐

  1. 如何通过Java代码在Word中创建可填充表单

    有时候,我们需要制作一个Word模板文档,然后发给用户填写,但我们希望用户只能在指定位置填写内容,其他内容不允许编辑和修改.这时候我们就可以通过表单控件来轻松实现这一功能.本文将为您介绍如何通过Jav ...

  2. Java学习笔记:Word中创建图表如此简单

    用法 Word中创建图表的方式是一样的. XWPFChart chart = WordHelpers.createChart(doc,500,300); XWPFChart和XSSFChart一样都是 ...

  3. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  4. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Destiny decides who enters your lif ...

  5. c# 获取word表格中的内容_Java 在Word中创建嵌套表格

    嵌套表格,即在一个大的表格单元格中再嵌进去一个或几个小的表格,使表格内容布局合理.本文将通过java程序来演示如何在Word中创建嵌套表格. 使用工具:Free Spire.Doc for Java ...

  6. Microsoft Word教程:如何在 Word 中创建文档、添加和编辑文本?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中创建文档.添加和编辑文本. 创建文档,打开 Word,选择「空白文档」. ...

  7. Java 在PPT中创建SmartArt图形、读取SmartArt图形中的文本

    一.概述及环境准备 SmartArt 图形通过将文字.图形从多种不同布局.组合来表现内容和观点的逻辑关系,能够快速.有效地传达设计者的意图和信息.这种图文表达的视觉表示形式常用于PPT,Word,Ex ...

  8. Java在Word中插入上标和下标

    前言 在某些情况下,你可能需要在Microsoft Word中插入上标和下标.例如,当你正在创建一个涉及科学公式的学术文件时.在这篇文章中,你将学习如何使用Spire.Doc for Java库在Wo ...

  9. 微软word开机自启动_如何在Microsoft Word中创建自定义封面

    微软word开机自启动 A great cover page draws in readers. If you use Microsoft Word, you're in luck, because ...

最新文章

  1. HMM -GMM 理清不错
  2. C#设计模式系列:享元模式(Flyweight)
  3. Fully decentralized NFT system towards Metaverse: Next generation Seatlab business model
  4. docker run 原理
  5. 转贴:Hyper-V的几款免费管理工具
  6. android分辨率比例成像,像素不是唯一 决定成像效果你必知的真相
  7. 基于CefSharp构建基于Chromium的应用程序
  8. zoj 1006 Do the Untwist 簡單字符串
  9. 机器学习与计算机视觉(被忽视的isp图像处理)
  10. linux音频设备节点,Linux音频驱动之三:PCM设备的创建
  11. 华为研发项目管理方法(HRDPM)核心五法则
  12. 将element-china-area-data获取的地区编码转为文字存储
  13. Go语言使用RabbitMQ
  14. 市场竞争力法则:以小博大,虽败犹荣
  15. 计算机使用的dns错误,dns错误,教您dns错误怎么修复
  16. 数十年军旅,钢铁意志成就他的技术颠峰
  17. GET请求里的body问题
  18. matlab我方指挥,【单选题】机场指挥塔位置:北纬30度35.343分,东经104度2.441分,在MATLAB中用变量...
  19. Excel数据行高参差不齐,如何一键设置固定行高
  20. 模拟键盘鼠标事件有两种方法

热门文章

  1. 【阻容降压电路】 原理 + multisim 14.0仿真 参数计算
  2. “财界奥斯卡”CGMA 全球管理会计2020年度中国大奖榜单发布
  3. [架构漫谈]软件架构师如何工作
  4. python-异常处理、元类
  5. 调查支付宝 余额宝 天弘基金
  6. 企业官方网站怎么申请?
  7. 百度华为等各个面试笔试题目收集
  8. mysql|多表连接查询
  9. 局域网共享hfs 软件使用
  10. 无限试驾2 服务器,《无限试驾 2》PC版本配置需求公布