效果图:
1. 备注:
1.根据easypoi的原理导出excel文件
2.由效果图为例子,姓名、年龄、性别、地址可以自定义展示,思路:这些可以保存到数据库里面,然后获取某些信息进行输入colList(表头)
3.封装easypoi快速实现导出请点击springboot整合easypoi实现浏览器自动下载excel文件,一行代码实现,附带完整项目和导出工具。
2. 引入依赖
<!--excel导出工具-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</exclusion>
</exclusions>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>
3. 主要代码
/**
* 自定义导出excel
* @param response
* @throws Exception
*/
@GetMapping("/export")
public void export(HttpServletResponse response) throws IOException {
//自定义表头
List<ExcelExportEntity> colList = new ArrayList<ExcelExportEntity>();
ExcelExportEntity colEntity = new ExcelExportEntity("姓名", "name");
colList.add(colEntity);
colEntity = new ExcelExportEntity("年龄", "age");
colList.add(colEntity);
colEntity = new ExcelExportEntity("性别", "gender");
colList.add(colEntity);
colEntity = new ExcelExportEntity("地址", "address");
colList.add(colEntity);
//数据
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> valMap1 = new HashMap<String, Object>();
valMap1.put("name","燕双鹰");
valMap1.put("age", "28");
valMap1.put("gender", "男");
valMap1.put("address", "抗日大道");
list.add(valMap1);
Map<String, Object> valMap2 = new HashMap<String, Object>();
valMap2.put("name","花木兰");
valMap2.put("age", "18");
valMap2.put("gender", "女");
valMap2.put("address", "东市购物街");
list.add(valMap2);
Map<String, Object> valMap3 = new HashMap<String, Object>();
valMap3.put("name","梁志超他奶");
valMap3.put("age", "88");
valMap3.put("gender", "女");
valMap3.put("address", "梁志超家");
list.add(valMap3);
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("价格分析表", "数据"), colList,
list);
downLoadExcel("用户信息", response, workbook);
}
/**
* excel下载
*
* @param fileName 下载时的文件名称
* @param response
* @param workbook excel数据
*/
private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws IOException {
try {
System.out.println("下载时的文件名称" + fileName);
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xlsx", "UTF-8"));
workbook.write(response.getOutputStream());
} catch (Exception e) {
throw new IOException(e.getMessage());
}
}