添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.5</version>
</dependency>
实体
public class FlowExcelVo {
@ExcelProperty(value = "ID", index = 0) // 定义表头名称和位置,0代表第一列
private String customerId;
@ExcelProperty(value = "类型", index = 1)
private String channelType;
@ExcelProperty(value = "时间", index = 2)
private String reachTime;
public String getChannelType() {
return channelType;
}
public void setChannelType(String channelType) {
this.channelType = channelType;
}
public String getReachTime() {
return reachTime;
}
public void setReachTime(String reachTime) {
this.reachTime = reachTime;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
@Override
public String toString() {
return "FlowExcelVo{" +
"customerId='" + customerId + '\'' +
", channelType='" + channelType + '\'' +
", reachTime='" + reachTime + '\'' +
'}';
}
}
Controller
@RestController
@RequestMapping("/excel")
public class VerificationExcelController {
private static final Logger log = LoggerFactory.getLogger(VerificationExcelController.class);
@PostMapping("/upload")
public void upload(@RequestParam(value = "file") MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
List<Object> listObj = EasyExcel.read(inputStream).head(FlowExcelVo.class).sheet().headRowNumber(1).doReadSync();
log.info("接收数据: {}" , listObj);
Object obj = listObj;
log.info("转换: {}" , obj);
List<FlowExcelVo> voList = (List<FlowExcelVo>)obj;
for (FlowExcelVo flowExcelVo : voList) {
log.info("遍历: {}" , flowExcelVo);
}
}
}