概述
在需要使用word模板来动态生成合同、协议等文件时,可以利用Java POI来实现动态替换。
例如一下情况:
引入依赖
下面展示一些 内联代码片
。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
实现代码
public void aucLotDownLoad(HttpServletResponse response) {
SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
//获取模板文件的目录地址
String fileDir = new File("C:\\Users\\issuser\\Documents").getCanonicalPath();
//获取模板文件
File demoFile = new File(fileDir + "/template.docx");
FileInputStream in = new FileInputStream(demoFile);
XWPFDocument hdt = new XWPFDocument(in);
//替换读取到的word模板内容的指定字段
Map<String, Object> map = new HashMap<String, Object>();
map.put("firstParty", "123");
map.put("secondParty", "456");
map.put("date", dateFormater.format(new Date()));
replaceParams(hdt,map);
//此处为表格中数据
Map<String, Object> tableMap = new HashMap<String, Object>();
tableMap.put("position","pe");
tableMap.put("workTime","20");
tableMap.put("wages",12345