maven依赖
<!--easyPOI start-->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
<!--easyPOI end-->
controller层:
//文件上传
@RequestMapping("importTable")
public Map<String,Object> importTable(MultipartFile file) throws IOException {
InputStream inputStream=file.getInputStream();
//easyPoi 处理流
ImportParams importParams=new ImportParams();
importParams.setTitleRows(1); //标题占几行
importParams.setHeadRows(1); //表头占几行
List<User> users=ExcelImportUtil.importExcel(inputStream,User.class,importParams);
for (User user:users){
//对图片的路径处理,变为相对路径
int img = user.getImage().lastIndexOf("\\");
user.setImage("img/"+user.getImage().substring(img+1));
userService.save(user);
}
Map<String,Object> map=new HashMap<>();
map.put("code",0);
return map;
}
//文件下载
@RequestMapping("exportTable")
public void exportTable(HttpServletResponse response) throws IOException {
//获取全部数据
List<User> us = userService.list();
for (User u : us) {
//修改图片路径(绝对网络路径,springboot启动才显示),使图片导出
u.setImage("http://localhost:8802/user/"+u.getImage());
}
Workbook boot= ExcelExportUtil.exportBigExcel(new ExportParams("信息统计表","表1"),User.class,us);
response.setHeader("Content-Disposition","attachment;fileName="+ URLEncoder.encode("表.xls","UTF-8"));
response.setContentType("application/vnd.ms-excel");
boot.write(response.getOutputStream());
}
实体类:
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "user_id", type = IdType.AUTO)
@Excel(name = "编号")
private Integer userId;
@Excel(name="姓名")
private String name;
@Excel(name = "图片",type = 2,width = 40,height = 20,imageType = 1,savePath = "E:\\ideacodes\\es\\user\\src\\main\\webapp\\img")
private String image;
@Excel(name="昵称")
private String nickname;
/**
* 1冻结
*/
@Excel(name = "状态",replace = {"正常_0","冻结_1"})
@TableLogic(value = "0",delval = "1")
private Integer status;
}