依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.2</version>
</dependency>
读文件
@RequestMapping(value = "/upload")
public void upload(HttpServletRequest request, @RequestParam("file") MultipartFile file) {
InputStream inputStream = file.getInputStream();
//同步读,不适用于大文件,大文件应启用监听器
List<User> list = EasyExcel.read(inputStream).head(User.class).sheet().doReadSync();
}
写文件
@RequestMapping(value = "/export")
public void export(HttpServletResponse response) {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
List<User> userList = new ArrayList();
EasyExcel.write(response.getOutputStream(), User.class).sheet("sheet").doWrite(userList);
}
@Data
public class User{
@ExcelProperty("名称")
private String name;
@ExcelProperty("年龄")
private Integer age;
}