@RequestMapping("/importExcel")
public void importExcel(HttpServletResponse response, HttpServletRequest request) {
MessageResult message = new MessageResult();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("excelFile");
List<Map<Object, Object>> list = new ArrayList<Map<Object, Object>>();
Workbook rwb = null;
Cell cell = null;
try {
rwb = Workbook.getWorkbook(multipartFile.getInputStream());
// 获取文件的指定工作表 默认的第一个
Sheet sheet = rwb.getSheet(0);
// 行数(表头的目录不需要,从1开始)
for (int i = 1; i < sheet.getRows(); i++) {
// 列数
Map<Object, Object> m = new HashMap<Object, Object>();
for (int j = 0; j < sheet.getColumns(); j++) {
// 获取第i行,第j列的值
cell = sheet.getCell(j, i);
if (StringUtils.isBlank(cell.getContents())) {
throw new Exception("excel 第" + (i + 1) + "行 第" + (j + 1) + "列数据为空");
} else {
Device device = deviceService.selectByPrimaryKeySN(cell.getContents().trim());
if (device != null && device.getSn()!=null) {
throw new Exception("excel 第" + (i + 1) + "行 SN:"+cell.getContents()+"已存在");
}
}
m.put("m" + j, cell.getContents());
m.put("m1", NonceStringUtil.getUUID());
}
// 把刚获取的列存入list
list.add(m);
}
String info = deviceService.insertDeviceSum(list);
String[] infoArr = info.split(";");
message.setCode(ConstantUtil.M_SUCCESS);
message.setMessage("导入成功,共插入"+infoArr[0]+"条记录,其中成功"+infoArr[1]+"条");
this.out(response, message);
} catch (Exception e) {
e.printStackTrace();
message.setCode(ConstantUtil.M_SYSTEM_ERROR);
message.setMessage(e.getMessage());
this.out(response, message);
}
}