基于EasyExcel导入文件,使用MultipartHttpServletRequest
maven
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>
model
@Data
public class LawsuitInfoExcelVO extends BaseRowModel {
/**
* 姓名
*/
@ExcelProperty(value = "姓名" ,index = 0)
private String name;
/**
* 身份证号
*/
@ExcelProperty(value = "身份证号" ,index = 1)
private String card;
/**
* 企业名称
*/
@ExcelProperty(value = "企业名称" ,index = 2)
private String enterprise;
/**
* 组织机构代码 - 社会统一信用代码
*/
@ExcelProperty(value = "组织机构代码" ,index = 3)
private String code;
}
excel模板
接口
/**
* excel导入
*
* @param multipartHttpServletRequest
* @return
*/
@RequestMapping(path = "excel", method = RequestMethod.POST)
public BaseResponseVO excel(MultipartHttpServletRequest multipartHttpServletRequest) throws Exception {
BaseResponseVO respVO = new BaseResponseVO();
// 文件
MultipartFile file = multipartHttpServletRequest.getFile("file");
// 文件名
String path = file.getOriginalFilename();
// 限制文件大小
boolean fileSize = RegularUtil.checkFileSize(file.getSize(), 3, "M");
if (!fileSize) {
throw new Exception("文件大小限制3M!");
}
// 限制格式
boolean checkFile = RegularUtil.checkFile(path);
if (!checkFile) {
throw new Exception("格式错误,本系统目前仅支持xlsx,xls!");
}
try {
if (StringUtils.isBlank(file.getOriginalFilename())) {
respVO.setStatus(BaseResponseVO.RESULT_FLAG_FAILURE);
respVO.setMsg("未选择文件!");
return respVO;
}
List<ExcelVO> list = new ArrayList<>();
List<Object> data = EasyExcelFactory.read(file.getInputStream(), new Sheet(1, 2, ExcelVO.class));
for (int i = 0; i < data.size(); i++) {
Object obj = data.get(i);
ExcelVO vo = (ExcelVO) obj;
// 自己处理数据
list.add(vo);
}
// 保存
if (!CollectionUtils.isEmpty(list)){
lawsuitInfoRSV.save(list);
}
respVO.setStatus(BaseResponseVO.RESULT_FLAG_SUCCESS);
respVO.setMsg("操作成功!");
} catch (Exception e) {
logger.error("method page error!", e);
throw new Exception("操作失败!");
}
return respVO;
}