@Test public  void  testExcel1 ( )  { EasyExcelFactory . read ( new  File ( "C:\\Users\\Admin\\Desktop\\树导入.xlsx" ) ,  null ,  new  ReadListener < Map > ( )  { public  static  final  int  BATCH_COUNT  =  100 ; private  List < Map > =  ListUtils . newArrayListWithExpectedSize ( BATCH_COUNT ) ; @Override public  void  invoke ( Map  data,  AnalysisContext  context)  { cachedDataList. add ( data) ; } @Override public  void  doAfterAllAnalysed ( AnalysisContext  context)  { System . out. println ( cachedDataList) ; System . out. println ( "+++++++++" ) ; System . out. println ( mapToList ( cachedDataList) ) ; 
} } ) . headRowNumber ( 0 ) . build ( ) . readAll ( ) ; } public  static  List < List < String > > mapToList ( List < Map > )  { List < List < String > > =  new  ArrayList < > ( ) ; for  ( Map  map :  maps)  { List < String > =  new  ArrayList < > ( ) ; map. forEach ( ( k,  v)  ->  list. add ( ObjectUtils . isEmpty ( v)  ?  ""  :  v. toString ( ) ) ) ; dataList. add ( list) ; } return  dataList; } public  List < CategoryVO > insertBatch ( List < List < String > > ) { Short  index =  1 ; Short  parentId =  null ; String  levelName =  null ; Map < String ,  CategoryVO > =  new  HashMap < String ,  CategoryVO > ( ) ; List < CategoryVO > =  new  ArrayList < CategoryVO > ( ) ; CategoryVO  level =  null ; int  allCols =  datas. get ( 0 ) . size ( ) ; for  ( int  column =  0 ;  column <  allCols;  column++ ) { for  ( int  i =  0 ;  i <  datas. size ( ) ;  i++ ) { List < String > =  datas. get ( i) ; if  ( column ==  0 ) { parentId =  ( short )  0 ; } else { parentId =  Short . valueOf ( tempMap. get ( rows. get ( column -  1 )  +  "_"  +  String . valueOf ( column) ) . getCatId ( ) ) ; } levelName =  rows. get ( column) ; if  ( StringUtils . isEmpty ( levelName) ) { System . out. println ( "+++++++++失败,表格中有空白+++++++++" ) ; } if  ( ! tempMap. containsKey ( levelName +  "_"  +  ( column +  1 ) ) ) { level =  new  CategoryVO ( ) ; level. setCatId ( String . valueOf ( index++ ) ) ; level. setCatName ( levelName) ; level. setParentId ( String . valueOf ( parentId) ) ; level. setGrade ( String . valueOf ( Byte . valueOf ( String . valueOf ( column +  1 ) ) ) ) ; tempMap. put ( levelName +  "_"  +  ( column +  1 ) ,  level) ; insertDatas. add ( level) ; } } } System . out. println ( insertDatas) ; return  insertDatas; }