word上使用merge field

2019-03-25  本文已影响0人  ivyDing

Merge mail是允许一个文档模板从一个数据源中提取关键字段,替换模板中的内容,生成多个文档。特别适用于通知、群发邮件、证书的生成。

一图了然

1. 在代码里面,引用jar包和license.xml

<!-- word转pdf依赖,本地jar包依赖 -->

    <groupId>com.aspose.word</groupId>

2. 用map对应起来就可以进行替换了

public MapgetMapForDoc(String userName, String userID, String applicationReason, String results){

    Map map =new HashMap();

    int number =userMapper.selectNumber()+1;

    map.put("number", String.valueOf(number));

    map.put("userName", userName);

    map.put("userID",userID);

    map.put("applicationReason",applicationReason);

    map.put("results",results);

    map.put("today",sdf.format(new Date()));

    return map;

}

3. 再把map中数据读出来:

private void merge(Document doc, Map data) {

if (data ==null || data.isEmpty()) {

log.info("data为空!无法继续执行merge!");

return;

    }

Set keys = data.keySet();

    String[] fieldNames =new String[keys.size()];

    Object[] values =new String[keys.size()];

    int i =0;

    for (String key : keys) {

fieldNames[i] = key;

        values[i] = data.get(key);

        ++i;

    }

try {

doc.getMailMerge().execute(fieldNames, values);

    }catch (Exception e) {

e.printStackTrace();

    }

}

4. 最后merge(doc, data);

上一篇下一篇

猜你喜欢

热点阅读