diff --git a/src/test/java/com/taover/easyexcel/test/WbTest.java b/src/test/java/com/taover/easyexcel/test/WbTest.java new file mode 100644 index 0000000..cc81331 --- /dev/null +++ b/src/test/java/com/taover/easyexcel/test/WbTest.java @@ -0,0 +1,71 @@ +package com.taover.easyexcel.test; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import com.taover.easyexcel.EasyExcel; + +public class WbTest { + public static void main(String[] args) { + File dataFile = new File("C:\\Users\\Administrator\\Desktop\\Excel隐藏行\\配送确认1.16(1).xlsx"); + List> data = transListMapTo2List(EasyExcel.read(dataFile).readHiddenRow(false).headRowNumber(0).doReadSelectedSync()); + for(List row: data) { + for(Object item: row) { + System.out.print(item+":"); + } + System.out.println(); + } + } + + private static List> transListMapTo2List(List listMapData) { + List> data = new ArrayList>(); + if(listMapData == null) { + return data; + } + for(Object item: listMapData) { + data.add(transMapToList((Map) item)); + } + return data; + } + + private static List transMapToList(Map cellData) { + List data = new ArrayList((int)(cellData.size()*1.5)); + if(cellData == null || cellData.isEmpty()) { + return data; + } + + //获取最大索引 + int maxIndex = 0; + for(Entry item: cellData.entrySet()) { + if(item.getKey() > maxIndex && item.getValue()!=null && !"".equals(item.getValue())) { + maxIndex = item.getKey(); + } + } + + //设置元素并填入空串 + fillBlankToList(data, maxIndex+1); + + //置入元素 + int dataSize = data.size(); + for(Entry item: cellData.entrySet()) { + if(item.getKey() >= dataSize) { + continue; + } + if(item.getValue() == null) { + data.set(item.getKey(), ""); + }else { + data.set(item.getKey(), item.getValue()); + } + } + return data; + } + + private static void fillBlankToList(List data, int blankNumber) { + for(int i=0; i