zoukankan      html  css  js  c++  java
  • Java用POI解析excel并获取所有单元格数据

      1.导入POI相关jar包

      org.apache.poi jar

      2.代码示例

      

    public List getAllExcel(File file, String tableName, String fname,
      String enterpriseId, String reportId, String projectId)
      throws FileNotFoundException, IOException, ClassNotFoundException,
      InstantiationException, IllegalAccessException,
      NoSuchMethodException, SecurityException, IllegalArgumentException,
      InvocationTargetException, ParseException {


      List listt = new ArrayList();

      try {
        FileInputStream fis = new FileInputStream(file);
        Workbook workbook = null;
        if (fname.toLowerCase().endsWith("xlsx")) {
          workbook = new XSSFWorkbook(fis);
        } else if (fname.toLowerCase().endsWith("xls")) {
          workbook = new HSSFWorkbook(new POIFSFileSystem(fis));
        }
        int numberOfSheets = workbook.getNumberOfSheets();

        for (int i = 0; i < numberOfSheets; i++) {
          Sheet sheet = workbook.getSheetAt(i);
          for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) { // 获取每行
            XSSFRow row = (XSSFRow) sheet.getRow(j);
            if(row!=null){
              List list = new ArrayList();
              for (int k = 0; k < sheet.getRow(0).getPhysicalNumberOfCells(); k++) { // 获取每个单元格
                Cell cell = row.getCell(k);
                if (cell == null) {
                  list.add("");
                  continue;
                }
                switch (cell.getCellType()) {
                case Cell.CELL_TYPE_STRING:
                  list.add(cell.getRichStringCellValue().getString());
                  break;
                case Cell.CELL_TYPE_NUMERIC:
                  if (DateUtil.isCellDateFormatted(cell)) {
                    list.add(cell.getDateCellValue());
                  } else {
                    list.add(cell.getNumericCellValue());
                  }
                  break;
                case Cell.CELL_TYPE_BOOLEAN:
                  list.add(cell.getBooleanCellValue());
                  break;
                case Cell.CELL_TYPE_FORMULA:
                  list.add(cell.getCellFormula());
                  break;
                default:
                  list.add("");
                break;
              }
            }

            listt.add(getByReflect(tableName, list, enterpriseId,reportId, projectId));
          }
        }
      }
        fis.close();
          } catch (IOException e) {
            e.printStackTrace();
          }
        return listt;
    }

  • 相关阅读:
    win7安装mysql解压缩版
    PCA原理
    通俗理解协方差
    python GIL
    yield理解
    python super 的正确理解
    python常见面试题
    python 的特殊方法 __str__和__repr__
    springMvc REST 请求和响应
    Math.Round 四舍五入问题 解惑 !
  • 原文地址:https://www.cnblogs.com/xiaofengyuan/p/5756287.html
Copyright © 2011-2022 走看看