导入Excel其实也类似做上传controller 接参数需要用文件类型的对象来接 还是上代码吧,虽然low了一点不过基本的功能解决了
========================================controller代码
说一下:具体的还是要根据自己公司的返回类型java 对象来定
/**
* 导入Excel保单数据
* @param file
* @return
*/
@ApiOperation(value = "导入EXCEL保单信息", notes = "导入EXCEL保单信息")
@RequestMapping(value = "importpolicy", method = RequestMethod.POST)
@PreAuthorize("hasAuthority('policy:add')")//此处为我本人公司auth2.0的验证,你们可以不加
public CommonResult<Object> importPolicy(@RequestParam(value = "file",required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) {
log.info("导入EXCEL保单信息==");
Map<String, String> result = policyRestZwqService.importpolicy(file);
return showRespMsg(result.get("code"), result.get("msg"), "");
}
================================================service接口
//导入Excel保单数据
Map<String,String> importpolicy(MultipartFile file);
=================================================service接口实现类
/**
* 导入Excel保单数据
* @return
*/
@Override
public Map<String, String> importpolicy(MultipartFile file) {
Map<String ,String > result = Maps.newHashMap();
//创建处理EXCEL的类
ReadExcel readExcel = new ReadExcel();
//解析excel,获取excel中的数据
List<PolicyZwqEntity> policyListMap = readExcel.getExcelInfo(file);
//至此已经将excel中的数据转换到list里面了,接下来就可以操作list,可以进行保存到数据库,或者其他操作,
for(PolicyZwqEntity policyMap : policyListMap){
//MP批量插入 先保存到session 然后通过session统一提交到数据库
SqlSession session = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH,false);
try {
save(policyMap);
session.commit();
session.clearCache();
}catch(Exception e) {
e.printStackTrace();
session.rollback();
}finally {
session.close();
result.put("msg","导入数据成功");
result.put("code",CommonResultCode.RESP_STATUS_SUCCESS);
}
}
return result;
}
======&#