@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;
}