最近有个需求,就是要根据用户订单信息来填充现有的Word模版,从而生成一个在线电子文档,再通过易企签来实现线上签字确认。
我们先来看看模版
这是我们项目上的大概文档,因为要涉及到一些文字替换和段落删减,引入了一些符号替换规则。
POI操作Word的常用属性
在操作之前,我们需要了解一下属性和方法
- XWPFDocument:用来获取或者创建一个Word文档
- XWPFParagraph:标题、文档、表格等
- XWPFRun:同样风格的一段文本
- XWPFTable:表格
- XWPFTableRow:表格中的一行
- XWPFTableCell:表格中的一个单元格
填充Word模版
现在我们就开始实践-填充我们上面的模版
引入POI包
org.apache.poipoi${poi.version}org.apache.poipoi-ooxml${poi.version}
这里的变量值是4.1.0。
获取文档对象
由于我的文档模版是存储在GridFS中(其实我更倾向于MinIO),所以我的通过文件流的形式读取
//通过文件读取XWPFDocument document = new XWPFDocument(OPCPackage.open(filePath));//通过文件流读取,in是InputStream对象XWPFDocument document = new XWPFDocument(in);