@Testpublic 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);@Overridepublic void invoke(Map data, AnalysisContext context) {cachedDataList.add(data);}@Overridepublic 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;}