前言
这篇文章是要记载在开发过程中实现:使用自己定义的excel模板文件,将list数据填入模板文件中。
说明
这里只记录了一些功能要点和使用时要注意的地方!!!
详细
- 引入依赖
这里使用的是easypoi
来实现这个功能,先引入依赖包,版本是4.1.2
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.1.2</version>
</dependency>
- 编写服务类的方法逻辑
/**
* @param dataList---需要导出的数据集合
* @param file---模板文件
*/
public Workbook exportExcel(List<EntityVO> dataList, InputStream file){
Workbook workbooks = null;
try {
//将模板文件转成Workbook
Workbook workbook = new HSSFWorkbook(file);
//创建模板输出参数
TemplateExportParams params = new TemplateExportParams();
params.setTemplateWb(workbook);
//创建实际值的集合
Map<String, Object> dataMap = new HashMap<>();
//输出列表集合
List<Map<String, Object>> listMap = new ArrayList<>();
for (EntityVO : dataList) {
Map<String, Object> lm = new HashMap<>();
lm.put("index", vo.getIndex());
lm.put("year", vo.getYear());
lm.put("month", vo.getMonth());
lm.put("xingming", vo.getXingming());
lm.put("remarks", vo.getRemarks());
listMap.add(lm);
}
dataMap.put("maplist", listMap);
workbooks = ExcelExportUtil.exportExcel(params, dataMap);
}
}catch (Exception e){
log.error(e.getMessage());
}
return workbooks;
}
这个方法需要传入两个参数:
- 要导出的数据列表
dataList
- 模板文件
file
返回的数据是已经把导出数据填充到模板文件的Workbook
。之所以方法的返回数据形式是Workbook,是因为我这里开发逻辑就到这了。
如果要把其处理好的文件导出来:
- 可以用写入到磁盘某个位置
FileOutputStream fos = new FileOutputStream("D:/ceshi.xls");
workbook.write(fos);
- 也可以返回到前端以供下载使用
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
还有模板的创建,根据实际导出的内容创建模板里面的定位格。如图所示:
目前就想到记录这些了,如果缺了哪些内容,告诉哈猿进行补充。