Merge mail是允許一個(gè)文檔模板從一個(gè)數(shù)據(jù)源中提取關(guān)鍵字段戏售,替換模板中的內(nèi)容,生成多個(gè)文檔圣絮。特別適用于通知祈惶、群發(fā)郵件、證書的生成扮匠。
1. 在代碼里面捧请,引用jar包和license.xml
<!-- word轉(zhuǎn)pdf依賴,本地jar包依賴 -->
? ? <groupId>com.aspose.word</groupId>
2. 用map對(duì)應(yīng)起來(lái)就可以進(jìn)行替換了
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中數(shù)據(jù)讀出來(lái):
private void merge(Document doc, Map data) {
if (data ==null || data.isEmpty()) {
log.info("data為空棒搜!無(wú)法繼續(xù)執(zhí)行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);