最近在做一个自动生成Word文档的东西,需求是基于固定格式的doc文件,对其进行修改后生成一个新的doc文件(修改方法为替换)。
由于poi只提供了简单的读写操作,不支持样式,因此只能先事先准备好带有格式的doc文件。
poi下载地址:http://poi.apache.org/download.html
目前(2021年4月11日)最新版本是5.0.0

package com.company;
import java.io.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.*;
import org.apache.poi.hwpf.usermodel.Range;
public class WordReading {
WordExtractor wordExtractor;
public static void main(String[] args) {
new WordReading().writeWord("D:\\模板.doc");
}
//写入word
public void writeWord(String path){
File file = new File(path);
try{
InputStream is = new FileInputStream(file);
HWPFDocument doc = new HWPFDocument(is);
//getRange方法读取doc文档全部内容
Range range = doc.getRange();
//替换文档内容
range.replaceText("${标题}","阿里巴巴发布公开信");
//输出到具体文件,如果doc文件不存在则自动生成
OutputStream os = new FileOutputStream("D:\\生成文件.doc");
doc.write(os);
os.close();
}catch (IOException e){
e.printStackTrace();
}
}
}