一:导入jar
可能用不到这么多
<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.15</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
二:新建一个word文档
三:存放地址
四:代码
public class DocUtil {
private static Logger log=Logger.getLogger(DocUtil.class);
public static void main(String[] args) {
Map map=new HashMap();
map.put("ar_cp_name","月报");
map.put("ar_dateTime","2018-5-28");
map.put("ar_info","岁的法国大使馆的风格");
getBuild("static/doc/ar_template.doc",map,"D:/aaa.doc");
}
public static void getBuild(String tmpFile, Map<String, String> contentMap, String exportFile){
InputStream inputStream = DocUtil.class.getClassLoader().getResourceAsStream(tmpFile);
// InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(tmpFile);
HWPFDocument document = null;
try {
document = new HWPFDocument(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
// 读取文本内容
Range bodyRange = document.getRange();
// 替换内容
for (Map.Entry<String, String> entry : contentMap.entrySet()) {
bodyRange.replaceText("${" + entry.getKey() + "}", entry.getValue());
}
//导出到文件
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
document.write(byteArrayOutputStream);
OutputStream outputStream = new FileOutputStream(exportFile);
outputStream.write(byteArrayOutputStream.toByteArray());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
五:结果