加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 运营中心 > Apache > 正文

Apache POI操作分批导入MySQL数据库

发布时间:2023-02-20 10:45:32 所属栏目:Apache 来源:互联网
导读:poi介绍: Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。 POI使用到的相关maven依赖坐标如下: dependency groupIdorg.apache.poi/g

                          continue;
                      }
                      //获得当前行的开始列
                      int firstCellNum = row.getFirstCellNum();
                      //获得当前行的列数
                      int lastCellNum = row.getPhysicalNumberOfCells();
                      String[] cells = new String[row.getPhysicalNumberOfCells()];
                      //循环当前行
                      for(int cellNum = firstCellNum; cellNum < lastCellNum;cellNum++){
                          Cell cell = row.getCell(cellNum);
                          cells[cellNum] = getCellValue(cell);
                      }
                      list.add(cells);
                  }
              }
              workbook.close();
          }
          return list;
      }
  
      //校验文件是否合法
      public static void checkFile(MultipartFile file) throws IOException{
          //判断文件是否存在
          if(null == file){
              throw new FileNotFoundException("文件不存在!");
          }
          //获得文件名
          String fileName = file.getOriginalFilename();
          //判断文件是否是excel文件
          if(!fileName.endsWith(xls) && !fileName.endsWith(xlsx)){
              throw new IOException(fileName + "不是excel文件");
          }
      }
      public static Workbook getWorkBook(MultipartFile file) {
          //获得文件名
          String fileName = file.getOriginalFilename();
          //创建Workbook工作薄对象,表示整个excel
          Workbook workbook = null;
          try {
              //获取excel文件的io流
              InputStream is = file.getInputStream();
              //根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象
              if(fileName.endsWith(xls)){
                  //2003
                  workbook = new HSSFWorkbook(is);
              }else if(fileName.endsWith(xlsx)){
                  //2007
                  workbook = new XSSFWorkbook(is);
              }
          } catch (IOException e) {
              e.printStackTrace();
          }
          return workbook;
      }
      public static String getCellValue(Cell cell){
          String cellValue = "";
          if(cell == null){
              return cellValue;
          }
          //如果当前单元格内容为日期类型,需要特殊处理
          String dataFormatString = cell.getCellStyle().getDataFormatString();
          if(dataFormatString.equals("m/d/yy")){
              cellValue = new SimpleDateFormat(DATE_FORMAT).format(cell.getDateCellValue());
              return cellValue;
          }
          //把数字当成String来读,避免出现1读成1.0的情况
          if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){
              cell.setCellType(Cell.CELL_TYPE_STRING);
          }
          //判断数据的类型
          switch (cell.getCellType()){
              case Cell.CELL_TYPE_NUMERIC: //数字
                  cellValue = String.valueOf(cell.getNumericCellValue());
                  break;
              case Cell.CELL_TYPE_STRING: //字符串
                  cellValue = String.valueOf(cell.getStringCellValue());
                  break;
              case Cell.CELL_TYPE_BOOLEAN: //Boolean
                  cellValue = String.valueOf(cell.getBooleanCellValue());
                  break;

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读