Skip to content

Commit ae9e3e8

Browse files
author
quding
committed
增加excel解析工具
1 parent 66397b4 commit ae9e3e8

File tree

1 file changed

+36
-29
lines changed

1 file changed

+36
-29
lines changed

Excel-Demo/src/main/java/cn/mrdear/excel/core/ExcelExtractor.java

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -73,36 +73,43 @@ public static <T> List<T> extractFrom(ExcelType type, InputStream excel, Class<T
7373
}
7474
}
7575
//开始解析表单
76+
Integer lineNumber = 0;
7677
List<T> result = new ArrayList<T>();
77-
rowIterator.forEachRemaining(x -> {
78-
Map<String, Object> tempMap = new HashMap<>();
79-
Iterator<Cell> cellIterator = x.cellIterator();
80-
cellIterator.forEachRemaining(y -> {
81-
Object value = null;
82-
switch (y.getCellType()) {
83-
case Cell.CELL_TYPE_STRING:
84-
value = y.getStringCellValue();
85-
break;
86-
case Cell.CELL_TYPE_BOOLEAN:
87-
value = y.getBooleanCellValue();
88-
break;
89-
case Cell.CELL_TYPE_NUMERIC:
90-
value = y.getNumericCellValue();
91-
break;
92-
case Cell.CELL_TYPE_ERROR:
93-
value = "";
94-
break;
95-
case Cell.CELL_TYPE_BLANK:
96-
value = "";
97-
break;
98-
default:
99-
value = "";
100-
}
101-
String key = headerMapper.get(existHeader.get(y.getColumnIndex()));
102-
tempMap.put(key, value);
103-
});
104-
result.add(BeanUtils.map2Bean(tempMap, tClass));
105-
});
78+
try {
79+
while (rowIterator.hasNext()){
80+
Row x = rowIterator.next();
81+
lineNumber++;
82+
Map<String, Object> tempMap = new HashMap<>();
83+
Iterator<Cell> cellIterator = x.cellIterator();
84+
cellIterator.forEachRemaining(y -> {
85+
Object value = null;
86+
switch (y.getCellType()) {
87+
case Cell.CELL_TYPE_STRING:
88+
value = y.getStringCellValue();
89+
break;
90+
case Cell.CELL_TYPE_BOOLEAN:
91+
value = y.getBooleanCellValue();
92+
break;
93+
case Cell.CELL_TYPE_NUMERIC:
94+
value = y.getNumericCellValue();
95+
break;
96+
case Cell.CELL_TYPE_ERROR:
97+
value = "";
98+
break;
99+
case Cell.CELL_TYPE_BLANK:
100+
value = "";
101+
break;
102+
default:
103+
value = "";
104+
}
105+
String key = headerMapper.get(existHeader.get(y.getColumnIndex()));
106+
tempMap.put(key, value);
107+
});
108+
result.add(BeanUtils.map2Bean(tempMap, tClass));
109+
}
110+
} catch (Exception e) {
111+
logger.error("第{}行解析错误",lineNumber);
112+
}
106113
return result;
107114
}
108115
}

0 commit comments

Comments
 (0)