引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version>
</dependency>
导入
controller
@PostMapping("importExcel")
public void ImportExcel(MultipartFile multipartFile) throws IOException {
clubMemberService.ImportExcel(multipartFile);
}
service
@Override
public void ImportExcel(MultipartFile multipartFile) throws IOException {
if (multipartFile.isEmpty()) {
return;
}
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
// 这里每次会读取3000条数据 然后返回过来 直接调用使用数据就行
EasyExcel.read(multipartFile.getInputStream(), ClubMember.class, new PageReadListener<ClubMember>(dataList -> {
for (ClubMember member : dataList) {
System.out.println(member.toString());
//将导入的数据用mybatisPlus一个个添加进数据库
clubMemberMapper.add(member);
}
})).sheet().doRead();
}
补充
导入列名,与excel标注名一致
实体
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @Author:RiverGods
* @Date:2023/4/21 16:51
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClubMember {
@ExcelProperty("主键")
private Long id;
@ExcelProperty("姓名")
private String name;
@ExcelProperty("手机号")
private String phone;
@ExcelProperty("状态")
private String status;
@ExcelProperty("创建时间")
private Date createAt;
@ExcelProperty("会员有效期起始时间")
private Date effectiveStartAt;
@ExcelProperty("会员有效期结束时间")
private Date effectiveEndAt;
}
excel