@@ -73,36 +73,43 @@ public static <T> List<T> extractFrom(ExcelType type, InputStream excel, Class<T
73
73
}
74
74
}
75
75
//开始解析表单
76
+ Integer lineNumber = 0 ;
76
77
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
+ }
106
113
return result ;
107
114
}
108
115
}
0 commit comments