forked from fanruan/easyexcel
Jiaju Zhuang
4 years ago
11 changed files with 205 additions and 28 deletions
@ -0,0 +1,32 @@ |
|||||||
|
package com.alibaba.excel.write.metadata; |
||||||
|
|
||||||
|
import java.util.Collection; |
||||||
|
|
||||||
|
/** |
||||||
|
* A collection row of data. |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class CollectionRowData implements RowData { |
||||||
|
|
||||||
|
private final Object[] array; |
||||||
|
|
||||||
|
public CollectionRowData(Collection<?> collection) { |
||||||
|
this.array = collection.toArray(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object get(int index) { |
||||||
|
return array[index]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int size() { |
||||||
|
return array.length; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isEmpty() { |
||||||
|
return array.length == 0; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.alibaba.excel.write.metadata; |
||||||
|
|
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* A map row of data. |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class MapRowData implements RowData { |
||||||
|
|
||||||
|
private final Map<Integer, ?> map; |
||||||
|
|
||||||
|
public MapRowData(Map<Integer, ?> map) { |
||||||
|
this.map = map; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object get(int index) { |
||||||
|
return map.get(index); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int size() { |
||||||
|
return map.size(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isEmpty() { |
||||||
|
return map.isEmpty(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,31 @@ |
|||||||
|
package com.alibaba.excel.write.metadata; |
||||||
|
|
||||||
|
/** |
||||||
|
* A row of data. |
||||||
|
* |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public interface RowData { |
||||||
|
/** |
||||||
|
* Returns the value to which the specified key is mapped, |
||||||
|
* or {@code null} if this map contains no mapping for the key. |
||||||
|
*/ |
||||||
|
Object get(int index); |
||||||
|
|
||||||
|
/** |
||||||
|
* Returns the number of elements in this collection. If this collection |
||||||
|
* contains more than <tt>Integer.MAX_VALUE</tt> elements, returns |
||||||
|
* <tt>Integer.MAX_VALUE</tt>. |
||||||
|
* |
||||||
|
* @return the number of elements in this collection |
||||||
|
*/ |
||||||
|
int size(); |
||||||
|
|
||||||
|
/** |
||||||
|
* Returns <tt>true</tt> if this collection contains no elements. |
||||||
|
* |
||||||
|
* @return <tt>true</tt> if this collection contains no elements |
||||||
|
*/ |
||||||
|
boolean isEmpty(); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,70 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.nomodel; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
||||||
|
import com.alibaba.excel.EasyExcel; |
||||||
|
|
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.BeforeClass; |
||||||
|
import org.junit.FixMethodOrder; |
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runners.MethodSorters; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@FixMethodOrder(MethodSorters.NAME_ASCENDING) |
||||||
|
public class NoModelDataTest { |
||||||
|
|
||||||
|
private static File file07; |
||||||
|
private static File file03; |
||||||
|
private static File fileRepeat07; |
||||||
|
private static File fileRepeat03; |
||||||
|
|
||||||
|
@BeforeClass |
||||||
|
public static void init() { |
||||||
|
file07 = TestFileUtil.createNewFile("noModel07.xlsx"); |
||||||
|
file03 = TestFileUtil.createNewFile("noModel03.xls"); |
||||||
|
fileRepeat07 = TestFileUtil.createNewFile("noModelRepeat07.xlsx"); |
||||||
|
fileRepeat03 = TestFileUtil.createNewFile("noModelRepeat03.xls"); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t01ReadAndWrite07() { |
||||||
|
readAndWrite(file07, fileRepeat07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t02ReadAndWrite03() { |
||||||
|
readAndWrite(file03, fileRepeat03); |
||||||
|
} |
||||||
|
|
||||||
|
private void readAndWrite(File file, File fileRepeat) { |
||||||
|
EasyExcel.write(file).sheet().doWrite(data()); |
||||||
|
List<Map<Integer, String>> result = EasyExcel.read(file).headRowNumber(0).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(10, result.size()); |
||||||
|
Map<Integer, String> data10 = result.get(9); |
||||||
|
Assert.assertEquals("string19", data10.get(0)); |
||||||
|
EasyExcel.write(fileRepeat).sheet().doWrite(result); |
||||||
|
result = EasyExcel.read(fileRepeat).headRowNumber(0).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(10, result.size()); |
||||||
|
data10 = result.get(9); |
||||||
|
Assert.assertEquals("string19", data10.get(0)); |
||||||
|
} |
||||||
|
|
||||||
|
private List<List<String>> data() { |
||||||
|
List<List<String>> list = new ArrayList<>(); |
||||||
|
for (int i = 0; i < 10; i++) { |
||||||
|
List<String> data = new ArrayList<>(); |
||||||
|
data.add("string1" + i); |
||||||
|
data.add("string2" + i); |
||||||
|
data.add("string3" + i); |
||||||
|
list.add(data); |
||||||
|
} |
||||||
|
return list; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue