JS:
<form class="form-inline" >
<!-- 工具栏 -->
<div id="toolbar">
<!-- 物料excel导入================================================= -->
<button class="btn btn-danger" οnclick="batchImport()">导入</button>
<input type="file" id="fileUpload" name="fileUpload">
<!-- <input type="file" id="fileUpload" name="fileUpload" style="display:none">-->
<!-- =========================================================== -->
</div>
<!-- bootstrapTable -->
</form>
主要代码
public Boolean excelImport(MultipartFile file, HttpServletRequest request)throws BusinessException {
User user = (User)request.getSession().getAttribute("currentUser");
String username = user.getUsername();
Integer count=null;
Map<String, Object> map = new HashMap<String, Object>();
try {
InputStream inputStream = file.getInputStream();
HSSFWorkbook sheets = new HSSFWorkbook(inputStream);
HSSFSheet sheetAt = sheets.getSheetAt(0);
int firstRowIndex = sheetAt.getFirstRowNum()+1;//第二行数据索引,第一行为列名
int lastRowIndex = sheetAt.getLastRowNum();
MaterialMaintenance material = new MaterialMaintenance();
for (int i = firstRowIndex; i <= lastRowIndex; i++) {
HSSFRow row = sheetAt.getRow(i);
for (int j = 0; j <=32; j++) {//所有单元格设置成string类型
if (row.getCell(j)!=null) {
row.getCell(j).setCellType(HSSFCell.CELL_TYPE_STRING);
}
}
material.setIsActive("Y");
material.setLockVersion(1);
String name = ExcelUtil.getStringCellValue(row.getCell(0));
if ("".equals(name)||name==null||name.equals("null")) {
throw new BusinessException("物料名不能为空");
}else {
material.setName(row.getCell(0)==null?null:ExcelUtil.getStringCellValue(row.getCell(0)));
}
material.setDescription(row.getCell(1)==null?null:ExcelUtil.getStringCellValue(row.getCell(1)));
HSSFCell cell = row.getCell(3);
if (cell==null) {
throw new BusinessException("版本不能为空");
}
Integer version = Integer.valueOf(row.getCell(2).getStringCellValue());
material.setVersion(version);
material.setStatus(row.getCell(3)==null?null:ExcelUtil.getStringCellValue(row.getCell(3)));
material.setFullName(row.getCell(4)==null?null:ExcelUtil.getStringCellValue(row.getCell(4)));
material.setMnemonicCode(row.getCell(5)==null?null:ExcelUtil.getStringCellValue(row.getCell(5)));
material.setClassType(row.getCell(6)==null?null:ExcelUtil.getStringCellValue(row.getCell(6)));
material.setProcessName(row.getCell(7)==null?null:ExcelUtil.getStringCellValue(row.getCell(7)));
material.setProcessVersion(row.getCell(8)==null?null:Integer.valueOf(row.getCell(8).getStringCellValue()));
material.setPartnerCode(row.getCell(9)==null?null:ExcelUtil.getStringCellValue(row.getCell(9)));
material.setEan(row.getCell(10)==null?null:ExcelUtil.getStringCellValue(row.getCell(10)));
material.setSku(row.getCell(11)==null?null:ExcelUtil.getStringCellValue(row.getCell(11)));
material.setUnitOfMeasure(row.getCell(12)==null?null:ExcelUtil.getStringCellValue(row.getCell(12)));
material.setCategory(row.getCell(13)==null?null:ExcelUtil.getStringCellValue(row.getCell(13)));
material.setMaterialType(row.getCell(14)==null?null:ExcelUtil.getStringCellValue(row.getCell(14)));
material.setSubMaterialType(row.getCell(15)==null?null:ExcelUtil.getStringCellValue(row.getCell(15)));
material.setAttribute(row.getCell(16)==null?null:ExcelUtil.getStringCellValue(row.getCell(16)));
material.setSecondaryAttribute(row.getCell(17)==null?null:ExcelUtil.getStringCellValue(row.getCell(17)));
material.setSpec(row.getCell(18)==null?null:ExcelUtil.getStringCellValue(row.getCell(18)));
material.setTexture(row.getCell(19)==null?null:ExcelUtil.getStringCellValue(row.getCell(19)));
material.setBomVerified(row.getCell(20)==null?null:ExcelUtil.getStringCellValue(row.getCell(20)));
material.setIsProduction(row.getCell(21)==null?null:ExcelUtil.getStringCellValue(row.getCell(21)));
material.setIsPhantom(row.getCell(22)==null?null:ExcelUtil.getStringCellValue(row.getCell(22)));
material.setSafeStockQty(row.getCell(23)==null?null:new BigDecimal(row.getCell(23).getStringCellValue()));
material.setMinStockQty(row.getCell(24)==null?null:new BigDecimal(row.getCell(24).getStringCellValue()));
material.setMaxStockQty(row.getCell(25)==null?null:new BigDecimal(row.getCell(25).getStringCellValue()));
material.setVolumn(row.getCell(26)==null?null:new BigDecimal(row.getCell(26).getStringCellValue()));
material.setWeight(row.getCell(27)==null?null:new BigDecimal(row.getCell(27).getStringCellValue()));
material.setShelfWidth(row.getCell(28)==null?null:new BigDecimal(row.getCell(28).getStringCellValue()));
material.setShelfHeight(row.getCell(29)==null?null:new BigDecimal(row.getCell(29).getStringCellValue()));
material.setShelfDepth(row.getCell(30)==null?null:new BigDecimal(row.getCell(30).getStringCellValue()));
material.setIdGenerator(row.getCell(31)==null?null:ExcelUtil.getStringCellValue(row.getCell(31)));
material.setWarehouseId(row.getCell(32)==null?null:ExcelUtil.getStringCellValue(row.getCell(32)));
material.setCreationTime(new Date());
material.setCreationBy(username);
List<MaterialMaintenance> list = materialMaintenanceMapper.queryMaterialByNameAndVersion(name,version);
if(list.size()>0) {
throw new BusinessException("该版本物料已经存在");
}
try {
count = materialMaintenanceMapper.insertmaterial(material);
} catch (Exception e) {
throw new BusinessException("导入失败");
}
}
} catch (IOException e) {
e.printStackTrace();
}
return count>0?true:false;
}