Java用POI解析excel并获取所有单元格数据的实例

网友投稿 362 2023-03-28


Java用POI解析excel并获取所有单元格数据的实例

1.导入POI相关jar包

org.apache.poi jar

2.代码示例

public List getAllExcel(File file, String tableName, String fname,

  String enterpriseId, String rephttp://ortId, String projectId)

  throws FileNotFoundException, IOException, ClassNotFoundException,

  InstantiationException, IllegalAccessException,

  NoSuchMethodException, SecurityException, IllegalArgumentException,

  InvocationTargetException, ParseException {

  List listt = new ArrayList();

  try {

    FileInputStream fis = new FileIhttp://nputStream(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;

kUcORh          }

        }

        listt.add(getByReflect(tableName, list, enterpriseId,reportId, projectId));

      }

    }

  }

    fis.close();

      } catch (IOException e) {

        e.printStackTrace();

      }

    return listt;

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:你应该知道的几类npm依赖包管理详解
下一篇:浅谈Java中几种常见的比较器的实现方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~