java实现excel数据导入数据库

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;
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值