1。引入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>
2.新建一个word文档
3.使用${}替换word文档中的变量
4.将doc文件放到resource文件下static文件下
5.编写代码
@Test public void test1(){ Map<String, String> map=new HashMap(); map.put("a","月报"); map.put("b","2018-5-28"); map.put("c","岁的法国大使馆的风格"); String tmpFile = "doc/abcd.doc"; InputStream inputStream = BaseTest.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 : map.entrySet()) { bodyRange.replaceText("${" + entry.getKey() + "}", entry.getValue()); } //导出到文件 try { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); document.write(byteArrayOutputStream); OutputStream outputStream = new FileOutputStream("D:/aaa.doc"); outputStream.write(byteArrayOutputStream.toByteArray()); outputStream.close(); byteArrayOutputStream.close(); } catch (IOException e) { e.printStackTrace(); }
6.原文链接