导入EasyExcel包
implementation "com.alibaba:easyexcel:3.1.3"
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.3</version>
</dependency>
Excel导入模板
实体类
@Data
public class EasyExcelEntity implements Serializable {
@ExcelProperty(index = 0)
@ApiModelProperty(value = "名称")
private String name;
@ExcelProperty(index = 1)
@ApiModelProperty(value = "地址")
private String address;
}
控制器
@PostMapping("/readExcel")
@ApiOperation(value = "excel读取")
public void readExcel(@RequestPart("file") MultipartFile file) throws IOException {
easyExcelService.readExcel(file);
}
服务层
void readExcel(MultipartFile file) throws IOException;
服务实现层
@Override
public void readExcel(MultipartFile file) throws IOException {
EasyExcelListener<EasyExcelEntity> listener = new EasyExcelListener<>();
ExcelReader excelReader = EasyExcelFactory.read(
file.getInputStream(),
EasyExcelEntity.class, listener)
.headRowNumber(1)
.build();
excelReader.readAll();
List<EasyExcelEntity> data = listener.getData();
excelReader.finish();
for (EasyExcelEntity easyExcel : data) {
}
}
通用EasyExcel监听类
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j
public class EasyExcelListener<T> extends AnalysisEventListener {
private List<T> data = new ArrayList<>();
@Override
public void invoke(Object pojo, AnalysisContext context) {
data.add((T) pojo);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
}