Java Excel读取操作:解析Excel数据并处理
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。
代码解释:
- 读取Excel文件: 使用
WorkbookFactory.create(file.getInputStream())方法读取Excel文件,并创建一个Workbook对象。 - 获取第一个Sheet: 使用
workbook.getSheetAt(0)获取Excel文件中的第一个Sheet。 - 循环遍历行: 使用
for循环遍历Sheet中的所有行。循环条件i < (sheet.getLastRowNum() - 1)表示遍历所有行,但不包括最后一行(因为索引从0开始)。 - 获取行数据: 使用
sheet.getRow(i + 2)获取当前行的对象,并使用getCell(column)获取指定列的数据。 - 数据处理: 将获取到的数据进行处理,例如将数据赋值给
AlarmContactCreateFlowIn对象的属性。 - 关闭资源: 使用
workbook.close()关闭Excel文件。
总结:
这段代码演示了如何使用Java读取Excel表格数据,并对数据进行解析和处理。通过理解 sheet.getLastRowNum() 的作用,可以方便地遍历所有行数据。
注意:
- 代码中使用了Apache POI库,需要先引入该库的依赖。
- 代码中的
checkEmailAndPhone()和contactsCreate()方法是自定义的方法,需要根据实际需求进行实现。 - 可以根据实际情况修改代码中的数据处理逻辑。
原文地址: https://www.cveoy.top/t/topic/p2ok 著作权归作者所有。请勿转载和采集!