社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
1、需要新建一个word模版,在需要输入数据的地方填入:
${变量名}
变量名称根据自行需要更改。不可有重复名称。
2、通过POI类,进行变量的替换,以实现word文件的生成。
3、示例:
public static void CreatWordByModel(String tmpFile, Map<String, String> contentMap, String exportFile) throws Exception{
InputStream in = null;
in = new FileInputStream(new File(tmpFile));
HWPFDocument document = null;
document = new HWPFDocument(in);
// 读取文本内容
Range bodyRange = document.getRange();
System.out.println(bodyRange.toString());
System.out.println(bodyRange.text());
// 替换内容
for (Map.Entry<String, String> entry : contentMap.entrySet()) {
bodyRange.replaceText("${" + entry.getKey() + "}", entry.getValue());
}
//导出到文件
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
document.write((OutputStream)byteArrayOutputStream);
OutputStream outputStream = new FileOutputStream(exportFile);
outputStream.write(byteArrayOutputStream.toByteArray());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Map map=new HashMap();
map.put("data1","20190301");
map.put("data2","你好");
map.put("data3","这是一个测试");
map.put("data4","CSDN");
map.put("data5","https://blog.csdn.net/yxf771hotmail");
CreatWordByModel("C:/model.doc",map,"C:/newfile.doc");
}
4、结果:
模版:
结果:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!