Java 在Word中创建邮件合并模板并合并文本和图片的操作方法

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

1. 创建Word填充模板

2. 邮件合并文本和图片

本次程序运行环境如下:

  • 代码编译工具:IDEA
  • Jdk版本:1.8.0
  • Word测试文档:.docx 2013
  • Word jar包工具:Free Spire.Doc for Java

关于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);
        }
    }
}

合并效果:

到此这篇关于Java 在Word中创建邮件合并模板并合并文本和图片的文章就介绍到这了,更多相关java创建邮件合并模板内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java设计模式模板方法(Template)原理解析

    这篇文章主要介绍了Java设计模式模板方法(Template)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象"来做调整",针对这种拥有固定算法流程,其中有固定的步凑,存在不固定的步凑的情况下就诞生了模板方法模式. 模板方法模式(Template)定义:

  • Java设计模式模板方法模式(Template)用法解析

    这篇文章主要介绍了Java设计模式模板方法模式(Template)用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象"来做调整",针对这种拥有固定算法流程,其中有固定的步凑,存在不固定的步凑的情况下就诞生了模板方法模式. 模板方法模式(Template)定义

  • java 后端生成pdf模板合并单元格表格的案例

    这里只放部分片段的代码 java中使用二维数组生成表格非常方便,但是每一维的数组都需要排好序,而且,在java中所谓的二维数组,三维数组等,其实都是多个一维数组组成的 /** * 添加子女教育规划表. * @param name 子女姓名 * @param educationItems 某个孩子的教育规划的二维数组,每列依次是:学程阶段.年数.费用支出(元)/年.年增长率 * @param spacing * @throws DocumentException * @throws IOExcep

  • Java 在Word中创建邮件合并模板并合并文本和图片的操作方法

    Word里面的邮件合并功能是一种可以快速批量操作同类型数据的方式,常见的如数据填充.打印等.其中必不可少的步骤包括用于填充的模板文档.填充的数据源以及实现邮件合并的功能.下面,通过Java程序展示如何来实现创建模板,并通过邮件合并功能来合并文本数据和图片数据的方法,分别以2个示例来展示,即: 1. 创建Word填充模板 2. 邮件合并文本和图片 本次程序运行环境如下: 代码编译工具:IDEA Jdk版本:1.8.0 Word测试文档:.docx 2013 Word jar包工具:Free Spi

  • 教你如何用Java替换Word中带有${}的内容

    一.概述 1.因为有些需求,需要把word文档里面的特定数据,设置成可变的:所以需要某种方式,把可变量用标签(如${变量名})替换,通过后端赋值此变量名,重新生成的Word就能根据后端设置的内容变化. 2.替换方法:准备一份word模板文档,如:word_mode.doc(或 word_mode.docx) 文件,把可变内容,用标签${变量名}替换(如图1姓名:${name}) 3.转成可读模板:全部设置完变量标签后,对此word文档进行另存为xml格式的文档(图2),保存后的文件名:word_

  • Java 获取Word中所有的插入和删除修订的方法

    目录 ​​引入Jar​​ ​​方法1​​ ​​方法2​​ ​​获取插入.删除的修订​​ 在 Word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入.删除.替换和格式更改.对插入或删除的内容,可通过本文中介绍的方法来获取. ​​引入Jar​​ ​​方法1​​ 手动引入:将Free Spire.Doc for Java下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:​ ​​方法2​​ 通过Ma

  • Java在Word中插入上标和下标的实现方法

    目录 前言 程序环境配置 安装Spire.Doc for Java 使用Java在Word中插入上标和下标 步骤 代码实现 效果图 在某些情况下,你可能需要在Microsoft Word中插入上标和下标.例如,当你正在创建一个涉及科学公式的学术文件时. 前言 在某些情况下,你可能需要在Microsoft Word中插入上标和下标.例如,当你正在创建一个涉及科学公式的学术文件时.在这篇文章中,你将学习如何使用Spire.Doc for Java库在Word文档中插入上标和下标. 程序环境配置 安装

  • Java在Excel中创建多级分组、折叠或展开分组的实现

    本文介绍通过Java程序在Excel创建分组的方法,可对行或列分组进行分组并设置明细数据是否展开或折叠.设置数据分组并展开或折叠时,可通过以下方法: 方法一: 通过方法sheet.groupByRows(int firstRow, int lastRow, boolean isCollapsed)设置行分组:通过方法sheet.groupByColumns(int firstColumnm, int lastColumn, boolean isCollapsed)设置列分组. 方法二: 通过方法

  • Java在Word中添加多行图片水印

    Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页面.(添加多行文字水印效果,可以查看这篇文章中的方法) 程序环境:使用spire.doc.jar,版本:3.9.0 Java代码: import com.spire.doc.*; import com.spire.doc.documents.Paragraph; import com.spire.d

  • Java 在PPT中创建散点图的实现示例

    目录 创建图表前 创建图表时 其他注意事项 本文将以Java代码示例展示如何在PPT幻灯片中创建散点图表. 创建图表前 需要在Java程序中导入用于操作PPT的jar包 Free Spire.Presentation for Java.可参考如下两种方法导入: 方法1:手动导入jar包.需下载jar包到本地,并解压,找到lib文件夹下的jar文件.然后按照如下步骤执行,导入: 方法2:maven仓库下载导入.需在pom.xml文件中配置maven仓库路径,并指定依赖.配置内容如下: <repos

  • java和javascript中过滤掉img形式的字符串不显示图片的方法

    本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉<img></img>和<img />形式的字符串 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

  • Python实现读取邮箱中的邮件功能示例【含文本及附件】

    本文实例讲述了Python实现读取邮箱中的邮件功能.分享给大家供大家参考,具体如下: #-*- encoding: utf-8 -*- import sys import locale import poplib from email import parser import email import string # 确定运行环境的encoding __g_codeset = sys.getdefaultencoding() if "ascii"==__g_codeset: __g_

  • Java应用程序中创建图像

    合成图像 您不必从文件中读取所有的图像 - 您可以创建自己的图像.要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中.它还支持各种存储像素数据的方法:使用或不使用 alpha 通道.不同种类的颜色模型以及颜色组件的各种精确度.ColorModel 类提供一种灵活的方法定义各种颜色模型,以和 BufferedImage 对象一起使用.为了理解颜色模型工作的基本知识,我们将只使用一个缺省的颜色模型,其颜

随机推荐