maven:
<!-- easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
vue:
// element-ui
<el-upload
class="upload-demo"
name="file"
:headers="headers"
:action=action
:on-success = "uploadContent"
:on-remove="removeContent"
>
<el-button type="primary">导入</el-button>
</el-upload>
// js
created(){
this.action = process.env.VUE_APP_BASE_API + 'retailer-service/retailer_import'
// 有token的加token 不然网关会拦截
this.headers.Authorization = sessionStorage.getItem("token")
},
java:
导入表格对应的类 -RetailerExpolerData
@ExcelProperty(“用户名”) 必须和表格的表头一致,否则会变空
@Data
public class RetailerExpolerData {
@ColumnWidth(50)
@ExcelProperty("用户名")
private String username;
@ExcelProperty("姓名")
private String name;
@ExcelProperty("省")
private String province;
@ExcelProperty("市")
private String city;
@ExcelProperty("区")
private String district;
}
controller
@RequestMapping(value = "retailer_import",method = RequestMethod.POST)
public Result importRetailer(MultipartFile file) throws IOException {
EasyExcel.read(file.getInputStream(), RetailerExpolerData.class, new PageReadListener<RetailerExpolerData>(dataList -> {
for (RetailerExpolerData row : dataList) {
System.out.println(JSON.toJSONString(row));
}
})).sheet().doRead();
return new Result(ResultCode.SUCCESS);
}
原表:
打印的数据: