main
黄海 9 months ago
parent 233955dae4
commit b782a02faf

@ -12,15 +12,17 @@ public class Step5_ReaderExcel {
FileInputStream fis = new FileInputStream(filePath); FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis); Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表 //遍历前4个工作表
for (int i = 0; i < 4; i++) {
Sheet sheet = workbook.getSheetAt(i);
System.out.println("Sheet Name: " + sheet.getSheetName());
// 创建FormulaEvaluator对象 // 创建FormulaEvaluator对象
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
int rowIndex;
for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) { for (rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
Row row = sheet.getRow(rowIndex); Row row = sheet.getRow(rowIndex);
if (row == null) { if (row == null) break;
break;
}
if (row.getRowNum() == 0) continue; // 跳过标题行, 本项目中有标题行 if (row.getRowNum() == 0) continue; // 跳过标题行, 本项目中有标题行
// 读取表格数据 // 读取表格数据
for (Cell cell : row) { for (Cell cell : row) {
@ -35,6 +37,21 @@ public class Step5_ReaderExcel {
} }
System.out.println(); System.out.println();
} }
//之所以减1是因为是在判断为空时才停止也就是过了真实数据一行后所以要减1
System.out.println("第一个表格开始行索引=2,结束行索引=" + (rowIndex - 1));
//第二个表格
//从rowIndex开始向下面查找直到第一列中出现文字“自动计算招生数、在校生数”此行的再下一行就是真正的第二个表格的开始位置
for (; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
Row row = sheet.getRow(rowIndex);
if (row != null && row.getCell(0) != null && row.getCell(0).toString().contains("自动计算招生数、在校生数")) {
System.out.println("rowIndex=" + rowIndex);
break;
}
}
break;//先调试第一个表格
}
workbook.close(); workbook.close();
fis.close(); fis.close();
} }

Loading…
Cancel
Save