Java Excel读取操作:解析Excel数据并处理

这段代码演示了如何使用Java读取Excel表格数据,并对数据进行处理。

Workbook workbook = null;
        try {
            workbook = WorkbookFactory.create(file.getInputStream());
            XSSFSheet sheet = (XSSFSheet)workbook.getSheetAt(0);
            for (int i = 0; i < (sheet.getLastRowNum() - 1); i++) {
                AlarmContactCreateFlowIn flowIn = new AlarmContactCreateFlowIn();
                XSSFRow row = sheet.getRow(i + 2);
                flowIn.setName(row.getCell(0).getStringCellValue());
                row.getCell(1).setCellType(CellType.STRING);
                flowIn.setPhone(row.getCell(1).getStringCellValue());
                flowIn.setEmail(row.getCell(2).getStringCellValue());
                checkEmailAndPhone(flowIn);
//                List<String> poolList = Arrays.stream(row.getCell(3).getStringCellValue().split(",")).collect(Collectors.toList());
//                HashMap<String, String> poolMap = new HashMap<>();
//                poolList.forEach(pool -> poolMap.put(redisTemplateProxy.get(pool), pool));
                contactsCreate(flowIn);
            }
            workbook.close();
        } catch (Exception e) {
            throw new RuntimeException("请检查文件是否正确或联系管理人员处理");
        }finally {
            try {
                assert workbook != null;
                workbook.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }

这段逻辑中的 sheet.getLastRowNum() 的值是根据Excel表格中最后一行的索引决定的。索引从0开始,所以 getLastRowNum() 返回的是最后一行的索引值减去1。例如,如果Excel表格中有5行数据,那么 getLastRowNum() 将返回4。

代码解释:

  1. 读取Excel文件: 使用 WorkbookFactory.create(file.getInputStream()) 方法读取Excel文件,并创建一个 Workbook 对象。
  2. 获取第一个Sheet: 使用 workbook.getSheetAt(0) 获取Excel文件中的第一个Sheet。
  3. 循环遍历行: 使用 for 循环遍历Sheet中的所有行。循环条件 i < (sheet.getLastRowNum() - 1) 表示遍历所有行,但不包括最后一行(因为索引从0开始)。
  4. 获取行数据: 使用 sheet.getRow(i + 2) 获取当前行的对象,并使用 getCell(column) 获取指定列的数据。
  5. 数据处理: 将获取到的数据进行处理,例如将数据赋值给 AlarmContactCreateFlowIn 对象的属性。
  6. 关闭资源: 使用 workbook.close() 关闭Excel文件。

总结:

这段代码演示了如何使用Java读取Excel表格数据,并对数据进行解析和处理。通过理解 sheet.getLastRowNum() 的作用,可以方便地遍历所有行数据。

注意:

  • 代码中使用了Apache POI库,需要先引入该库的依赖。
  • 代码中的 checkEmailAndPhone()contactsCreate() 方法是自定义的方法,需要根据实际需求进行实现。
  • 可以根据实际情况修改代码中的数据处理逻辑。

原文地址: https://www.cveoy.top/t/topic/p2ok 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录