一、用户导入:
依赖添加:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
controller:
/**
* 用户导入
*/
@PostMapping("/importUser")
@ResponseBody
public ResultData<Object> importUser(@RequestParam("file") MultipartFile file,
HttpServletRequest request){
try {
Map<Integer, List<ExcelError>> excelErrorListMap = userService.importExcel(file.getInputStream());
if (!excelErrorListMap.isEmpty()){
return ResResponse.render("500", "导入用户信息异常", excelErrorListMap);
}
return ResResponse.success();
} catch (Exception e) {
logger.error("导入用户信息执行异常:{}", e);
}
return ResResponse.error("导入用户信息异常!");
}
service:
import java.io.InputStream;
import java.util.HashMap;
public Map<Integer, List<ExcelError>> importExcel(InputStream inputStream) {
UserListener listener = new UserListener();
List<User> users = readExcel(inputStream,listener);
Map<Integer, List<ExcelError>> excelErrorMap = listener.getExcelErrorMap();
if(!excelErrorMap.isEmpty()){
return excelErrorMap;
}
//保存users数据逻辑
}
readExcel方法
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder;
import com.alibaba.excel.support.ExcelTypeEnum;
/**
* 解析excel
*/
private List<User> readExcel(InputStream input, AnalysisEventListener listener) {
ExcelReaderBuilder read = EasyExcel.read(input);
ExcelReaderBuild