easyPOI + SpringBoot导入与导出Excel
easyPOI + SpringBoot导入与导出Excel
第一步:pom文件加入以下依赖
<!--easyPOI-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.0.3</version>
</dependency>
第二步:实体类加入注释@Excel()
public class Address{
@Excel(name = "ID")
private Integer addrId;
@Excel(name = "地址", orderNum = "1")
private String address;
@Excel(name = "创建时间", exportFormat = "yyyy-MM-dd", orderNum = "2")
@JsonFormat(pattern="yyyy-MM-dd")
private Date createTime;
@Excel(name = "状态", orderNum = "3")
private Integer state;
@Excel(name = "用户", orderNum = "4")
private Integer userId;
//getters and setters ...
}
第三步:书写Controller
/**
* @author
* @date 2018/8/30
*/
@RestController
@RequestMapping("/address")
public class AddressController {
@Autowired
private AddrService addrService;
@RequestMapping("/exportExcel")
public void export(HttpServletResponse response){
List<Address> addresses = addrService.findAll();
// 设置响应输出的头类型(设置响应类型)
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下载文件的默认名称(设置下载文件的默认名称)
response.setHeader("Content-Disposition", "attachment;filename=address.xls");
//导出操作
try {
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("客户地址","1"),Address.class,addresses);
workbook.write(response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
}
注:导出操作中,
new ExportParams()中第一个参数为导出文件的标题行内容,第二个参数为当前导出的sheet的名称,导出效果如下图。
Address.class 实体类class
addresses 数据库查出的数据对象list
第四步:页面的简单访问测试代码
<a href="/address/exportExcel" >下载</a>
点击页面链接后就会触发easyPOI的导出下载,得到上图中的excel表格。
此案例为最近写项目时遇到导入导出时研究easyPOI时做的第一个测试案例,实测通过并应用在了项目中,故做此笔记记录并希望可以帮到在学习途中的你们!