从本地读取Excel文件的数据存入数据库

 public String getEleValues()  throws Exception{
 			// 获取文件夹
            InputStream input = new FileInputStream(new File("D:/vue/基础数据fap_element_bm.xlsx"));
            XSSFWorkbook book = new XSSFWorkbook(input);  // 将文件引入workbook
            XSSFSheet sheet = book.getSheetAt(0);  // 第一个工作表
            EleValueVO eleValueVO = new EleValueVO();
            for (int i = 1;i < sheet.getLastRowNum() + 1; i++) {  //总行数
                XSSFRow row = sheet.getRow(i);  // 获取行
                for(int j =0;j<row.getPhysicalNumberOfCells();j++) {   //获取总列数
                    getCellValue(row.getCell(j));// 设置类型
                }
                if (row == null) {  //判断是否行为空
                    System.out.println("this row is null ----------------------");
                    continue;
                }else{
                    eleValueVO.setId((int) row.getCell(0).getNumericCellValue());
                    eleValueVO.setCode(row.getCell(1).getStringCellValue());
                    eleValueVO.setName(row.getCell(2).getStringCellValue());
                    if(row.getCell(3)==null){
                        eleValueVO.setParentid(null);
                    }else{
                        eleValueVO.setParentid((int)row.getCell(3).getNumericCellValue());
                    }
                    eleValueVO.setHold1(row.getCell(4).getStringCellValue());
                    eleValueVO.setHold2(row.getCell(5).getStringCellValue());
//                  testIElementService.adduser(eleValueVO);
                }
            }
            book.close();
            input.close();
            return "";
    }




    public static String getCellValue(Cell cell) {
        String cellValue = "";
        if (cell == null) {
            return cellValue;
        }
        // 判断数据的类型
        switch (cell.getCellType()) {
            case Cell.CELL_TYPE_NUMERIC: // 数字
                //short s = cell.getCellStyle().getDataFormat();
                if (HSSFDateUtil.isCellDateFormatted(cell)) {// 处理日期格式、时间格式
                    SimpleDateFormat sdf = null;
                    // 验证short值
                    if (cell.getCellStyle().getDataFormat() == 14) {
                        sdf = new SimpleDateFormat("yyyy/MM/dd");
                    } else if (cell.getCellStyle().getDataFormat() == 21) {
                        sdf = new SimpleDateFormat("HH:mm:ss");
                    } else if (cell.getCellStyle().getDataFormat() == 22) {
                        sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    } else {
                        throw new RuntimeException("日期格式错误!!!");
                    }
                    Date date = cell.getDateCellValue();
                    cellValue = sdf.format(date);
                } else if (cell.getCellStyle().getDataFormat() == 0) {//处理数值格式
                    cell.setCellType(Cell.CELL_TYPE_STRING);
                    cellValue = String.valueOf(cell.getRichStringCellValue().getString());
                }
                break;
            case Cell.CELL_TYPE_STRING: // 字符串
                cellValue = String.valueOf(cell.getStringCellValue());
                break;
            case Cell.CELL_TYPE_BOOLEAN: // Boolean
                cellValue = String.valueOf(cell.getBooleanCellValue());
                break;
            case Cell.CELL_TYPE_FORMULA: // 公式
                cellValue = String.valueOf(cell.getCellFormula());
                break;
            case Cell.CELL_TYPE_BLANK: // 空值
                cellValue = null;
                break;
            case Cell.CELL_TYPE_ERROR: // 故障
                cellValue = "非法字符";
                break;
            default:
                cellValue = "未知类型";
                break;
        }
        return cellValue;
    }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值