一、场景
将数据导出word后且实现动态勾选复选框操作
eg: word模板
导出后效果
(根据数据动态勾选复选框)
二、解决方案及涉及技术
① 使用poi提供的库进行处理(poi官方文档)
② 涉及依赖
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<!-- pio处理word文件操作复选框-->
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.4</version>
</dependency>
三、代码实现
word单个/批量下载工具类
在操作模板时,我们需先将写入word模板的数据构建为Map
① 数据封装处理(TrafficBlock 对象)
public Map buildTrafficDataForm(TrafficBlock trafficBlock){
BlockDownLoadDataForm dataForm = new BlockDownLoadDataForm();
BeanUtils.copyProperties(trafficBlock, dataForm);
dataForm.setDirection(EventInfoDirection.getDirection(trafficBlock.getDirection()).getMessage());
// 涉桥/涉隧
dataForm.setInvolveNo(String.valueOf(trafficBlock.getInvolveNumber()));