@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 > cachedDataList = 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 > maps) { List < List < String > > dataList = new ArrayList < > ( ) ; for ( Map map : maps) { List < String > list = 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 > > datas) { Short index = 1 ; Short parentId = null ; String levelName = null ; Map < String , CategoryVO > tempMap = new HashMap < String , CategoryVO > ( ) ; List < CategoryVO > insertDatas = 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 > rows = 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; }