mirror of https://github.com/alibaba/easyexcel
Jiaju Zhuang
5 years ago
committed by
GitHub
14 changed files with 584 additions and 122 deletions
@ -0,0 +1,20 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.excludeorinclude; |
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ExcludeOrIncludeData { |
||||||
|
@ExcelProperty(order = 1) |
||||||
|
private String column1; |
||||||
|
@ExcelProperty(order = 2) |
||||||
|
private String column2; |
||||||
|
@ExcelProperty(order = 3) |
||||||
|
private String column3; |
||||||
|
@ExcelProperty(order = 4) |
||||||
|
private String column4; |
||||||
|
} |
@ -0,0 +1,161 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.excludeorinclude; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Collections; |
||||||
|
import java.util.HashSet; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.BeforeClass; |
||||||
|
import org.junit.FixMethodOrder; |
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runners.MethodSorters; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.core.sort.SortData; |
||||||
|
import com.alibaba.easyexcel.test.core.sort.SortDataListener; |
||||||
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
||||||
|
import com.alibaba.excel.EasyExcel; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@FixMethodOrder(MethodSorters.NAME_ASCENDING) |
||||||
|
public class ExcludeOrIncludeDataTest { |
||||||
|
|
||||||
|
private static File excludeIndex07; |
||||||
|
private static File excludeIndex03; |
||||||
|
private static File excludeFiledName07; |
||||||
|
private static File excludeFiledName03; |
||||||
|
private static File includeIndex07; |
||||||
|
private static File includeIndex03; |
||||||
|
private static File includeFiledName07; |
||||||
|
private static File includeFiledName03; |
||||||
|
|
||||||
|
@BeforeClass |
||||||
|
public static void init() { |
||||||
|
excludeIndex07 = TestFileUtil.createNewFile("excludeIndex.xlsx"); |
||||||
|
excludeIndex03 = TestFileUtil.createNewFile("excludeIndex.xls"); |
||||||
|
excludeFiledName07 = TestFileUtil.createNewFile("excludeFiledName.xlsx"); |
||||||
|
excludeFiledName03 = TestFileUtil.createNewFile("excludeFiledName.xls"); |
||||||
|
includeIndex07 = TestFileUtil.createNewFile("includeIndex.xlsx"); |
||||||
|
includeIndex03 = TestFileUtil.createNewFile("includeIndex.xls"); |
||||||
|
includeFiledName07 = TestFileUtil.createNewFile("includeFiledName.xlsx"); |
||||||
|
includeFiledName03 = TestFileUtil.createNewFile("includeFiledName.xls"); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t01ExcludeIndex07() { |
||||||
|
excludeIndex(excludeIndex07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t02ExcludeIndex07() { |
||||||
|
excludeIndex(excludeIndex03); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t03ExcludeFiledName07() { |
||||||
|
excludeFiledName(excludeFiledName07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t04ExcludeFiledName07() { |
||||||
|
excludeFiledName(excludeFiledName03); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
public void t05IncludeIndex07() { |
||||||
|
includeIndex(includeIndex07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t06IncludeIndex07() { |
||||||
|
includeIndex(includeIndex03); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t07IncludeFiledName07() { |
||||||
|
includeFiledName(includeFiledName07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t08IncludeFiledName07() { |
||||||
|
includeFiledName(includeFiledName03); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void excludeIndex(File file) { |
||||||
|
Set<Integer> excludeColumnIndexes = new HashSet<Integer>(); |
||||||
|
excludeColumnIndexes.add(0); |
||||||
|
excludeColumnIndexes.add(3); |
||||||
|
EasyExcel.write(file, ExcludeOrIncludeData.class).excludeColumnIndexes(excludeColumnIndexes).sheet() |
||||||
|
.doWrite(data()); |
||||||
|
List<Map<Integer, String>> dataMap = EasyExcel.read(file).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(1, dataMap.size()); |
||||||
|
Map<Integer, String> record = dataMap.get(0); |
||||||
|
Assert.assertEquals(2, record.size()); |
||||||
|
Assert.assertEquals("column2", record.get(0)); |
||||||
|
Assert.assertEquals("column3", record.get(1)); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private void excludeFiledName(File file) { |
||||||
|
Set<String> excludeColumnFiledNames = new HashSet<String>(); |
||||||
|
excludeColumnFiledNames.add("column1"); |
||||||
|
excludeColumnFiledNames.add("column3"); |
||||||
|
excludeColumnFiledNames.add("column4"); |
||||||
|
EasyExcel.write(file, ExcludeOrIncludeData.class).excludeColumnFiledNames(excludeColumnFiledNames).sheet() |
||||||
|
.doWrite(data()); |
||||||
|
List<Map<Integer, String>> dataMap = EasyExcel.read(file).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(1, dataMap.size()); |
||||||
|
Map<Integer, String> record = dataMap.get(0); |
||||||
|
Assert.assertEquals(1, record.size()); |
||||||
|
Assert.assertEquals("column2", record.get(0)); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private void includeIndex(File file) { |
||||||
|
Set<Integer> includeColumnIndexes = new HashSet<Integer>(); |
||||||
|
includeColumnIndexes.add(1); |
||||||
|
includeColumnIndexes.add(2); |
||||||
|
EasyExcel.write(file, ExcludeOrIncludeData.class).includeColumnIndexes(includeColumnIndexes).sheet() |
||||||
|
.doWrite(data()); |
||||||
|
List<Map<Integer, String>> dataMap = EasyExcel.read(file).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(1, dataMap.size()); |
||||||
|
Map<Integer, String> record = dataMap.get(0); |
||||||
|
Assert.assertEquals(2, record.size()); |
||||||
|
Assert.assertEquals("column2", record.get(0)); |
||||||
|
Assert.assertEquals("column3", record.get(1)); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private void includeFiledName(File file) { |
||||||
|
Set<String> includeColumnFiledNames = new HashSet<String>(); |
||||||
|
includeColumnFiledNames.add("column2"); |
||||||
|
includeColumnFiledNames.add("column3"); |
||||||
|
EasyExcel.write(file, ExcludeOrIncludeData.class).includeColumnFiledNames(includeColumnFiledNames).sheet() |
||||||
|
.doWrite(data()); |
||||||
|
List<Map<Integer, String>> dataMap = EasyExcel.read(file).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(1, dataMap.size()); |
||||||
|
Map<Integer, String> record = dataMap.get(0); |
||||||
|
Assert.assertEquals(2, record.size()); |
||||||
|
Assert.assertEquals("column2", record.get(0)); |
||||||
|
Assert.assertEquals("column3", record.get(1)); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private List<ExcludeOrIncludeData> data() { |
||||||
|
List<ExcludeOrIncludeData> list = new ArrayList<ExcludeOrIncludeData>(); |
||||||
|
ExcludeOrIncludeData excludeOrIncludeData = new ExcludeOrIncludeData(); |
||||||
|
excludeOrIncludeData.setColumn1("column1"); |
||||||
|
excludeOrIncludeData.setColumn2("column2"); |
||||||
|
excludeOrIncludeData.setColumn3("column3"); |
||||||
|
excludeOrIncludeData.setColumn4("column4"); |
||||||
|
list.add(excludeOrIncludeData); |
||||||
|
return list; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.sort; |
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class SortData { |
||||||
|
private String column5; |
||||||
|
private String column6; |
||||||
|
@ExcelProperty(order = 100) |
||||||
|
private String column4; |
||||||
|
@ExcelProperty(order = 99) |
||||||
|
private String column3; |
||||||
|
@ExcelProperty(value = "column2", index = 1) |
||||||
|
private String column2; |
||||||
|
@ExcelProperty(value = "column1", index = 0) |
||||||
|
private String column1; |
||||||
|
} |
@ -0,0 +1,41 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.sort; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import org.junit.Assert; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.core.simple.SimpleData; |
||||||
|
import com.alibaba.excel.context.AnalysisContext; |
||||||
|
import com.alibaba.excel.event.AnalysisEventListener; |
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class SortDataListener extends AnalysisEventListener<SortData> { |
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(SortDataListener.class); |
||||||
|
List<SortData> list = new ArrayList<SortData>(); |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
public void invoke(SortData data, AnalysisContext context) { |
||||||
|
list.add(data); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void doAfterAllAnalysed(AnalysisContext context) { |
||||||
|
Assert.assertEquals(list.size(), 1); |
||||||
|
SortData sortData = list.get(0); |
||||||
|
Assert.assertEquals("column1", sortData.getColumn1()); |
||||||
|
Assert.assertEquals("column2", sortData.getColumn2()); |
||||||
|
Assert.assertEquals("column3", sortData.getColumn3()); |
||||||
|
Assert.assertEquals("column4", sortData.getColumn4()); |
||||||
|
Assert.assertEquals("column5", sortData.getColumn5()); |
||||||
|
Assert.assertEquals("column6", sortData.getColumn6()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,111 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.sort; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Collections; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.BeforeClass; |
||||||
|
import org.junit.FixMethodOrder; |
||||||
|
import org.junit.Test; |
||||||
|
import org.junit.runners.MethodSorters; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
||||||
|
import com.alibaba.excel.EasyExcel; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
@FixMethodOrder(MethodSorters.NAME_ASCENDING) |
||||||
|
public class SortDataTest { |
||||||
|
|
||||||
|
private static File file07; |
||||||
|
private static File file03; |
||||||
|
private static File sortNoHead07; |
||||||
|
private static File sortNoHead03; |
||||||
|
|
||||||
|
@BeforeClass |
||||||
|
public static void init() { |
||||||
|
file07 = TestFileUtil.createNewFile("sort.xlsx"); |
||||||
|
file03 = TestFileUtil.createNewFile("sort.xls"); |
||||||
|
sortNoHead07 = TestFileUtil.createNewFile("sortNoHead.xlsx"); |
||||||
|
sortNoHead03 = TestFileUtil.createNewFile("sortNoHead.xls"); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t01ReadAndWrite07() { |
||||||
|
readAndWrite(file07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t02ReadAndWrite03() { |
||||||
|
readAndWrite(file03); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t03ReadAndWriteNoHead07() { |
||||||
|
readAndWriteNoHead(sortNoHead07); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void t04ReadAndWriteNoHead03() { |
||||||
|
readAndWriteNoHead(sortNoHead03); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void readAndWrite(File file) { |
||||||
|
EasyExcel.write(file, SortData.class).sheet().doWrite(data()); |
||||||
|
List<Map<Integer, String>> dataMap = EasyExcel.read(file).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(1, dataMap.size()); |
||||||
|
Map<Integer, String> record = dataMap.get(0); |
||||||
|
Assert.assertEquals("column1", record.get(0)); |
||||||
|
Assert.assertEquals("column2", record.get(1)); |
||||||
|
Assert.assertEquals("column3", record.get(2)); |
||||||
|
Assert.assertEquals("column4", record.get(3)); |
||||||
|
Assert.assertEquals("column5", record.get(4)); |
||||||
|
Assert.assertEquals("column6", record.get(5)); |
||||||
|
|
||||||
|
EasyExcel.read(file, SortData.class, new SortDataListener()).sheet().doRead(); |
||||||
|
} |
||||||
|
|
||||||
|
private void readAndWriteNoHead(File file) { |
||||||
|
EasyExcel.write(file).head(head()).sheet().doWrite(data()); |
||||||
|
List<Map<Integer, String>> dataMap = EasyExcel.read(file).sheet().doReadSync(); |
||||||
|
Assert.assertEquals(1, dataMap.size()); |
||||||
|
Map<Integer, String> record = dataMap.get(0); |
||||||
|
Assert.assertEquals("column1", record.get(0)); |
||||||
|
Assert.assertEquals("column2", record.get(1)); |
||||||
|
Assert.assertEquals("column3", record.get(2)); |
||||||
|
Assert.assertEquals("column4", record.get(3)); |
||||||
|
Assert.assertEquals("column5", record.get(4)); |
||||||
|
Assert.assertEquals("column6", record.get(5)); |
||||||
|
EasyExcel.read(file, SortData.class, new SortDataListener()).sheet().doRead(); |
||||||
|
} |
||||||
|
|
||||||
|
private List<List<String>> head() { |
||||||
|
List<List<String>> head = new ArrayList<List<String>>(); |
||||||
|
head.add(Collections.singletonList("column1")); |
||||||
|
head.add(Collections.singletonList("column2")); |
||||||
|
head.add(Collections.singletonList("column3")); |
||||||
|
head.add(Collections.singletonList("column4")); |
||||||
|
head.add(Collections.singletonList("column5")); |
||||||
|
head.add(Collections.singletonList("column6")); |
||||||
|
return head; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private List<SortData> data() { |
||||||
|
List<SortData> list = new ArrayList<SortData>(); |
||||||
|
SortData sortData = new SortData(); |
||||||
|
sortData.setColumn1("column1"); |
||||||
|
sortData.setColumn2("column2"); |
||||||
|
sortData.setColumn3("column3"); |
||||||
|
sortData.setColumn4("column4"); |
||||||
|
sortData.setColumn5("column5"); |
||||||
|
sortData.setColumn6("column6"); |
||||||
|
list.add(sortData); |
||||||
|
return list; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
package com.alibaba.easyexcel.test.temp.large; |
||||||
|
|
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
import org.apache.poi.ss.formula.functions.Index; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import com.alibaba.excel.context.AnalysisContext; |
||||||
|
import com.alibaba.excel.event.AnalysisEventListener; |
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Jiaju Zhuang |
||||||
|
*/ |
||||||
|
public class NoModelLargeDataListener extends AnalysisEventListener<Map<Integer, String>> { |
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(NoModelLargeDataListener.class); |
||||||
|
private int count = 0; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void invoke(Map<Integer, String> data, AnalysisContext context) { |
||||||
|
if (count == 0) { |
||||||
|
LOGGER.info("First row:{}", JSON.toJSONString(data)); |
||||||
|
} |
||||||
|
count++; |
||||||
|
if (count % 100000 == 0) { |
||||||
|
LOGGER.info("Already read:{}", count); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void doAfterAllAnalysed(AnalysisContext context) { |
||||||
|
LOGGER.info("Large row count:{}", count); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue