mirror of https://github.com/alibaba/easyexcel
zhuangjiaju
6 years ago
56 changed files with 1040 additions and 730 deletions
@ -1,52 +0,0 @@ |
|||||||
package com.alibaba.excel.converters; |
|
||||||
|
|
||||||
import com.alibaba.excel.enums.CellDataTypeEnum; |
|
||||||
|
|
||||||
/** |
|
||||||
* Converter unique key |
|
||||||
* |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class ConverterKey { |
|
||||||
|
|
||||||
private Class javaTypeKey; |
|
||||||
private CellDataTypeEnum excelTypeKey; |
|
||||||
|
|
||||||
public ConverterKey(Class javaTypeKey, CellDataTypeEnum excelTypeKey) { |
|
||||||
if (javaTypeKey == null || excelTypeKey == null) { |
|
||||||
throw new IllegalArgumentException("All parameters can not be null"); |
|
||||||
} |
|
||||||
this.javaTypeKey = javaTypeKey; |
|
||||||
this.excelTypeKey = excelTypeKey; |
|
||||||
} |
|
||||||
|
|
||||||
public static ConverterKey buildConverterKey(Class javaTypeKey, CellDataTypeEnum excelTypeKey) { |
|
||||||
return new ConverterKey(javaTypeKey, excelTypeKey); |
|
||||||
} |
|
||||||
|
|
||||||
public static ConverterKey buildConverterKey(Converter converter) { |
|
||||||
return buildConverterKey(converter.supportJavaTypeKey(), converter.supportExcelTypeKey()); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean equals(Object o) { |
|
||||||
if (this == o) { |
|
||||||
return true; |
|
||||||
} |
|
||||||
if (o == null || getClass() != o.getClass()) { |
|
||||||
return false; |
|
||||||
} |
|
||||||
ConverterKey that = (ConverterKey)o; |
|
||||||
if (javaTypeKey != null ? !javaTypeKey.equals(that.javaTypeKey) : that.javaTypeKey != null) { |
|
||||||
return false; |
|
||||||
} |
|
||||||
return excelTypeKey == that.excelTypeKey; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public int hashCode() { |
|
||||||
int result = javaTypeKey != null ? javaTypeKey.hashCode() : 0; |
|
||||||
result = 31 * result + (excelTypeKey != null ? excelTypeKey.hashCode() : 0); |
|
||||||
return result; |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,18 @@ |
|||||||
|
package com.alibaba.excel.converters; |
||||||
|
|
||||||
|
import com.alibaba.excel.enums.CellDataTypeEnum; |
||||||
|
|
||||||
|
/** |
||||||
|
* Converter unique key |
||||||
|
* |
||||||
|
* @author zhuangjiaju |
||||||
|
*/ |
||||||
|
public class ConverterKeyBuild { |
||||||
|
public static String buildKey(Class clazz) { |
||||||
|
return clazz.getName(); |
||||||
|
} |
||||||
|
|
||||||
|
public static String buildKey(Class clazz, CellDataTypeEnum cellDataTypeEnum) { |
||||||
|
return clazz.getName() + "-" + cellDataTypeEnum.toString(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,60 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.large; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author zhuangjiaju |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class LargeData { |
||||||
|
|
||||||
|
private String str1; |
||||||
|
|
||||||
|
private String str2; |
||||||
|
|
||||||
|
private String str3; |
||||||
|
|
||||||
|
private String str4; |
||||||
|
|
||||||
|
private String str5; |
||||||
|
|
||||||
|
private String str6; |
||||||
|
|
||||||
|
private String str7; |
||||||
|
|
||||||
|
private String str8; |
||||||
|
|
||||||
|
private String str9; |
||||||
|
|
||||||
|
private String str10; |
||||||
|
|
||||||
|
private String str11; |
||||||
|
|
||||||
|
private String str12; |
||||||
|
|
||||||
|
private String str13; |
||||||
|
|
||||||
|
private String str14; |
||||||
|
|
||||||
|
private String str15; |
||||||
|
|
||||||
|
private String str16; |
||||||
|
|
||||||
|
private String str17; |
||||||
|
|
||||||
|
private String str18; |
||||||
|
|
||||||
|
private String str19; |
||||||
|
|
||||||
|
private String str20; |
||||||
|
|
||||||
|
private String str21; |
||||||
|
|
||||||
|
private String str22; |
||||||
|
|
||||||
|
private String str23; |
||||||
|
|
||||||
|
private String str24; |
||||||
|
|
||||||
|
private String str25; |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.large; |
||||||
|
|
||||||
|
import org.junit.Assert; |
||||||
|
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 zhuangjiaju |
||||||
|
*/ |
||||||
|
public class LargeDataListener extends AnalysisEventListener<LargeData> { |
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(LargeDataListener.class); |
||||||
|
private int count = 0; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void invoke(LargeData 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); |
||||||
|
Assert.assertEquals(count, 464509); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.large; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
||||||
|
import com.alibaba.excel.EasyExcelFactory; |
||||||
|
|
||||||
|
/** |
||||||
|
* Large data test |
||||||
|
* |
||||||
|
* @author zhuangjiaju |
||||||
|
*/ |
||||||
|
public class LargeDataTest { |
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(LargeDataTest.class); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void read() { |
||||||
|
long start = System.currentTimeMillis(); |
||||||
|
EasyExcelFactory.read(TestFileUtil.getPath() + "large" + File.separator + "large07.xlsx", LargeData.class, |
||||||
|
new LargeDataListener()).headRowNumber(2).sheet().doRead().finish(); |
||||||
|
LOGGER.info("Large data total time spent:{}", System.currentTimeMillis() - start); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,36 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.nohead; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.core.order.OrderData; |
||||||
|
|
||||||
|
/** |
||||||
|
* Order data test |
||||||
|
* |
||||||
|
* @author zhuangjiaju |
||||||
|
*/ |
||||||
|
public class NoHeadData07Test { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void simple() { |
||||||
|
// ExcelWriter writer = EasyExcelFactory.writerBuilder().outputFile(TestFileUtil.createNewWriteFile("order07.xlsx"))
|
||||||
|
// .head(OrderData.class).build();
|
||||||
|
// Sheet sheet = EasyExcelFactory.writerSheetBuilder().sheetNo(0).sheetName("order").build();
|
||||||
|
// writer.write(createData(10000 * 100), sheet);
|
||||||
|
// writer.finish();
|
||||||
|
} |
||||||
|
|
||||||
|
private List<OrderData> createData(int count) { |
||||||
|
List<OrderData> list = new ArrayList<OrderData>(); |
||||||
|
for (int i = 0; i < count; i++) { |
||||||
|
OrderData orderData = new OrderData(); |
||||||
|
orderData.setIndex1("排序1:" + i); |
||||||
|
orderData.setIndex10("排序10:" + i); |
||||||
|
list.add(orderData); |
||||||
|
} |
||||||
|
return list; |
||||||
|
} |
||||||
|
} |
@ -1,4 +1,4 @@ |
|||||||
package com.alibaba.easyexcel.test.wirte.order; |
package com.alibaba.easyexcel.test.core.order; |
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty; |
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
|
@ -1,4 +1,4 @@ |
|||||||
package com.alibaba.easyexcel.test.read.simple; |
package com.alibaba.easyexcel.test.core.simple; |
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty; |
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
|
@ -0,0 +1,22 @@ |
|||||||
|
package com.alibaba.easyexcel.test.core.simple; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
|
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import com.alibaba.easyexcel.test.util.TestFileUtil; |
||||||
|
import com.alibaba.excel.EasyExcelFactory; |
||||||
|
|
||||||
|
/** |
||||||
|
* Simple data test |
||||||
|
* |
||||||
|
* @author zhuangjiaju |
||||||
|
*/ |
||||||
|
public class SimpleDataTest { |
||||||
|
|
||||||
|
@Test |
||||||
|
public void read() { |
||||||
|
EasyExcelFactory.read(TestFileUtil.getPath() + "simple" + File.separator + "simple07Test.xlsx", |
||||||
|
SimpleData.class, new SimpleDataListener()).sheet().doRead().finish(); |
||||||
|
} |
||||||
|
} |
@ -1,40 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.ehcache; |
|
||||||
|
|
||||||
import java.io.File; |
|
||||||
|
|
||||||
import org.ehcache.Cache; |
|
||||||
import org.ehcache.PersistentCacheManager; |
|
||||||
import org.ehcache.config.builders.CacheConfigurationBuilder; |
|
||||||
import org.ehcache.config.builders.CacheManagerBuilder; |
|
||||||
import org.ehcache.config.builders.ResourcePoolsBuilder; |
|
||||||
import org.ehcache.config.units.MemoryUnit; |
|
||||||
import org.junit.Ignore; |
|
||||||
import org.junit.Test; |
|
||||||
import org.slf4j.Logger; |
|
||||||
import org.slf4j.LoggerFactory; |
|
||||||
|
|
||||||
import com.alibaba.excel.util.POITempFile; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
@Ignore |
|
||||||
public class EncacheTest { |
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(EncacheTest.class); |
|
||||||
|
|
||||||
@Test |
|
||||||
public void cache() { |
|
||||||
File file = POITempFile.createCacheTmpFile(); |
|
||||||
PersistentCacheManager persistentCacheManager = |
|
||||||
CacheManagerBuilder.newCacheManagerBuilder().with(CacheManagerBuilder.persistence(file)) |
|
||||||
.withCache("cache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Integer.class, String.class, |
|
||||||
ResourcePoolsBuilder.newResourcePoolsBuilder().disk(10, MemoryUnit.GB))) |
|
||||||
.build(true); |
|
||||||
Cache<Integer, String> cache = persistentCacheManager.getCache("cache", Integer.class, String.class); |
|
||||||
cache.put(1, "测试1"); |
|
||||||
LOGGER.info("cache:{}", cache.get(1)); |
|
||||||
persistentCacheManager.close(); |
|
||||||
LOGGER.info("close"); |
|
||||||
POITempFile.delete(file); |
|
||||||
} |
|
||||||
} |
|
@ -1,189 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.read; |
|
||||||
|
|
||||||
import java.io.IOException; |
|
||||||
import java.io.InputStream; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
|
|
||||||
import com.alibaba.easyexcel.test.listen.ExcelListener; |
|
||||||
import com.alibaba.easyexcel.test.model.ReadModel; |
|
||||||
import com.alibaba.easyexcel.test.model.ReadModel2; |
|
||||||
import com.alibaba.easyexcel.test.util.FileUtil; |
|
||||||
import com.alibaba.excel.EasyExcelFactory; |
|
||||||
import com.alibaba.excel.ExcelReader; |
|
||||||
import com.alibaba.excel.write.metadata.Sheet; |
|
||||||
|
|
||||||
public class ReadTest { |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 07版本excel读数据量少于1千行数据,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void simpleReadListStringV2007() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2007.xlsx"); |
|
||||||
List<Object> data = EasyExcelFactory.read(inputStream, new Sheet(1, 0)); |
|
||||||
inputStream.close(); |
|
||||||
print(data); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 07版本excel读数据量少于1千行数据自动转成javamodel,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void simpleReadJavaModelV2007() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2007.xlsx"); |
|
||||||
List<Object> data = EasyExcelFactory.read(inputStream, new Sheet(2, 1, ReadModel.class)); |
|
||||||
inputStream.close(); |
|
||||||
print(data); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 07版本excel读数据量大于1千行,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void saxReadListStringV2007() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2007.xlsx"); |
|
||||||
ExcelListener excelListener = new ExcelListener(); |
|
||||||
EasyExcelFactory.readBySax(inputStream, new Sheet(1, 1), excelListener); |
|
||||||
inputStream.close(); |
|
||||||
|
|
||||||
} |
|
||||||
/** |
|
||||||
* 07版本excel读数据量大于1千行,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void saxReadJavaModelV2007() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2007.xlsx"); |
|
||||||
ExcelListener excelListener = new ExcelListener(); |
|
||||||
EasyExcelFactory.readBySax(inputStream, new Sheet(2, 1, ReadModel.class), excelListener); |
|
||||||
inputStream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 07版本excel读取sheet |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void saxReadSheetsV2007() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2007.xlsx"); |
|
||||||
ExcelListener excelListener = new ExcelListener(); |
|
||||||
ExcelReader excelReader = EasyExcelFactory.getReader(inputStream,excelListener); |
|
||||||
List<Sheet> sheets = excelReader.getSheets(); |
|
||||||
System.out.println("llll****"+sheets); |
|
||||||
System.out.println(); |
|
||||||
for (Sheet sheet:sheets) { |
|
||||||
if(sheet.getSheetNo() ==1) { |
|
||||||
excelReader.read(sheet); |
|
||||||
}else if(sheet.getSheetNo() ==2){ |
|
||||||
sheet.setHeadLineMun(1); |
|
||||||
sheet.setClazz(ReadModel.class); |
|
||||||
excelReader.read(sheet); |
|
||||||
}else if(sheet.getSheetNo() ==3){ |
|
||||||
sheet.setHeadLineMun(1); |
|
||||||
sheet.setClazz(ReadModel2.class); |
|
||||||
excelReader.read(sheet); |
|
||||||
} |
|
||||||
} |
|
||||||
inputStream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* 03版本excel读数据量少于1千行数据,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void simpleReadListStringV2003() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2003.xls"); |
|
||||||
List<Object> data = EasyExcelFactory.read(inputStream, new Sheet(1, 0)); |
|
||||||
inputStream.close(); |
|
||||||
print(data); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 03版本excel读数据量少于1千行数据转成javamodel,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void simpleReadJavaModelV2003() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2003.xls"); |
|
||||||
List<Object> data = EasyExcelFactory.read(inputStream, new Sheet(2, 1, ReadModel.class)); |
|
||||||
inputStream.close(); |
|
||||||
print(data); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 03版本excel读数据量大于1千行数据,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void saxReadListStringV2003() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2003.xls"); |
|
||||||
ExcelListener excelListener = new ExcelListener(); |
|
||||||
EasyExcelFactory.readBySax(inputStream, new Sheet(2, 1), excelListener); |
|
||||||
inputStream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 03版本excel读数据量大于1千行数据转成javamodel,内部采用回调方法. |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void saxReadJavaModelV2003() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2003.xls"); |
|
||||||
ExcelListener excelListener = new ExcelListener(); |
|
||||||
EasyExcelFactory.readBySax(inputStream, new Sheet(2, 1, ReadModel.class), excelListener); |
|
||||||
inputStream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 00版本excel读取sheet |
|
||||||
* |
|
||||||
* @throws IOException 简单抛出异常,真实环境需要catch异常,同时在finally中关闭流 |
|
||||||
*/ |
|
||||||
@Test |
|
||||||
public void saxReadSheetsV2003() throws IOException { |
|
||||||
InputStream inputStream = FileUtil.getResourcesFileInputStream("2003.xls"); |
|
||||||
ExcelListener excelListener = new ExcelListener(); |
|
||||||
ExcelReader excelReader = EasyExcelFactory.getReader(inputStream, excelListener); |
|
||||||
List<Sheet> sheets = excelReader.getSheets(); |
|
||||||
System.out.println(); |
|
||||||
for (Sheet sheet : sheets) { |
|
||||||
if (sheet.getSheetNo() == 1) { |
|
||||||
excelReader.read(sheet); |
|
||||||
} else { |
|
||||||
sheet.setHeadLineMun(2); |
|
||||||
sheet.setClazz(ReadModel.class); |
|
||||||
excelReader.read(sheet); |
|
||||||
} |
|
||||||
} |
|
||||||
inputStream.close(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public void print(List<Object> datas){ |
|
||||||
int i=0; |
|
||||||
for (Object ob:datas) { |
|
||||||
System.out.println(i++); |
|
||||||
System.out.println(ob); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,57 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.read.large; |
|
||||||
|
|
||||||
import java.io.InputStream; |
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
import org.slf4j.Logger; |
|
||||||
import org.slf4j.LoggerFactory; |
|
||||||
|
|
||||||
import com.alibaba.easyexcel.test.util.FileUtil; |
|
||||||
import com.alibaba.excel.EasyExcelFactory; |
|
||||||
import com.alibaba.excel.ExcelReader; |
|
||||||
import com.alibaba.excel.context.AnalysisContext; |
|
||||||
import com.alibaba.excel.event.AnalysisEventListener; |
|
||||||
import com.alibaba.excel.metadata.Sheet; |
|
||||||
|
|
||||||
/** |
|
||||||
* Simple data test |
|
||||||
* |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class LargeData07Test { |
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(LargeData07Test.class); |
|
||||||
|
|
||||||
@Test |
|
||||||
public void large() throws Exception { |
|
||||||
EasyExcelFactory.read().registerReadListener(listener).file(in).sheet().sheetNo(sheetNo).doRead().finish(); |
|
||||||
|
|
||||||
//
|
|
||||||
// public static List<Object> read(InputStream in, Sheet sheet) {
|
|
||||||
// final List<Object> rows = new ArrayList<Object>();
|
|
||||||
// new ExcelReader(in, null, new AnalysisEventListener<Object>() {
|
|
||||||
// @Override
|
|
||||||
// public void invoke(Object object, AnalysisContext context) {
|
|
||||||
// rows.add(object);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void doAfterAllAnalysed(AnalysisContext context) {}
|
|
||||||
// }, false).read(sheet);
|
|
||||||
// return rows;
|
|
||||||
// }
|
|
||||||
// LOGGER.info("start");
|
|
||||||
// long start = System.currentTimeMillis();
|
|
||||||
// // InputStream inputStream = FileUtil.readFile("large/large07.xlsx");
|
|
||||||
// ExcelReader excelReader = EasyExcelFactory.getReader(null, new LargeDataListener());
|
|
||||||
// excelReader.read(new Sheet(1, 1));
|
|
||||||
// // inputStream.close();
|
|
||||||
// LOGGER.info("time:{}", System.currentTimeMillis() - start);
|
|
||||||
} |
|
||||||
|
|
||||||
@Test |
|
||||||
public void hello() throws Exception { |
|
||||||
LOGGER.info("start"); |
|
||||||
} |
|
||||||
} |
|
@ -1,29 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.read.large; |
|
||||||
|
|
||||||
import org.slf4j.Logger; |
|
||||||
import org.slf4j.LoggerFactory; |
|
||||||
|
|
||||||
import com.alibaba.easyexcel.test.read.simple.SimpleDataListener; |
|
||||||
import com.alibaba.excel.context.AnalysisContext; |
|
||||||
import com.alibaba.excel.event.AnalysisEventListener; |
|
||||||
import com.alibaba.fastjson.JSON; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class LargeDataListener extends AnalysisEventListener<Object> { |
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(SimpleDataListener.class); |
|
||||||
private int count = 0; |
|
||||||
|
|
||||||
@Override |
|
||||||
public void invoke(Object object, AnalysisContext context) { |
|
||||||
count++; |
|
||||||
if (count % 100000 == 0) { |
|
||||||
LOGGER.info("row:{} ,mem:{},data:{}", count, Runtime.getRuntime().totalMemory(), JSON.toJSONString(object)); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void doAfterAllAnalysed(AnalysisContext context) {} |
|
||||||
|
|
||||||
} |
|
@ -1,26 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.read.simple; |
|
||||||
|
|
||||||
import java.io.InputStream; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
|
|
||||||
import com.alibaba.easyexcel.test.util.FileUtil; |
|
||||||
import com.alibaba.excel.EasyExcelFactory; |
|
||||||
import com.alibaba.excel.ExcelReader; |
|
||||||
import com.alibaba.excel.write.metadata.Sheet; |
|
||||||
|
|
||||||
/** |
|
||||||
* Simple data test |
|
||||||
* |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class SimpleData07Test { |
|
||||||
|
|
||||||
@Test |
|
||||||
public void simple() throws Exception { |
|
||||||
InputStream inputStream = FileUtil.readFile("simple/simple07.xlsx"); |
|
||||||
ExcelReader excelReader = EasyExcelFactory.getReader(inputStream, new SimpleDataListener()); |
|
||||||
excelReader.read(new Sheet(1, 1), SimpleData.class); |
|
||||||
inputStream.close(); |
|
||||||
} |
|
||||||
} |
|
@ -1,13 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.wirte; |
|
||||||
|
|
||||||
import java.io.IOException; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
|
|
||||||
public class WriteTest { |
|
||||||
|
|
||||||
@Test |
|
||||||
public void writeV2007() throws IOException { |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
@ -1,40 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.wirte.nohead; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
|
|
||||||
import com.alibaba.easyexcel.test.util.FileUtil; |
|
||||||
import com.alibaba.easyexcel.test.wirte.order.OrderData; |
|
||||||
import com.alibaba.excel.EasyExcelFactory; |
|
||||||
import com.alibaba.excel.ExcelWriter; |
|
||||||
import com.alibaba.excel.write.metadata.Sheet; |
|
||||||
|
|
||||||
/** |
|
||||||
* Order data test |
|
||||||
* |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class NoHeadData07Test { |
|
||||||
|
|
||||||
@Test |
|
||||||
public void simple() { |
|
||||||
ExcelWriter writer = EasyExcelFactory.writerBuilder().outputFile(FileUtil.createNewWriteFile("order07.xlsx")) |
|
||||||
.head(OrderData.class).build(); |
|
||||||
Sheet sheet = EasyExcelFactory.writerSheetBuilder().sheetNo(0).sheetName("order").build(); |
|
||||||
writer.write(createData(10000 * 100), sheet); |
|
||||||
writer.finish(); |
|
||||||
} |
|
||||||
|
|
||||||
private List<OrderData> createData(int count) { |
|
||||||
List<OrderData> list = new ArrayList<OrderData>(); |
|
||||||
for (int i = 0; i < count; i++) { |
|
||||||
OrderData orderData = new OrderData(); |
|
||||||
orderData.setIndex1("排序1:" + i); |
|
||||||
orderData.setIndex10("排序10:" + i); |
|
||||||
list.add(orderData); |
|
||||||
} |
|
||||||
return list; |
|
||||||
} |
|
||||||
} |
|
@ -1,16 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.wirte.simple; |
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty; |
|
||||||
|
|
||||||
import lombok.Data; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
@Data |
|
||||||
public class SimpleData { |
|
||||||
@ExcelProperty("字符串1") |
|
||||||
private String string1; |
|
||||||
@ExcelProperty("字符串2") |
|
||||||
private String string2; |
|
||||||
} |
|
@ -1,17 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.wirte.simple; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
|
|
||||||
/** |
|
||||||
* Simple data test |
|
||||||
* |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class SimpleData03Test { |
|
||||||
|
|
||||||
@Test |
|
||||||
public void simple07() { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -1,49 +0,0 @@ |
|||||||
package com.alibaba.easyexcel.test.wirte.simple; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import org.junit.Test; |
|
||||||
|
|
||||||
import com.alibaba.easyexcel.test.util.FileUtil; |
|
||||||
import com.alibaba.excel.EasyExcelFactory; |
|
||||||
import com.alibaba.excel.ExcelWriter; |
|
||||||
import com.alibaba.excel.write.metadata.Sheet; |
|
||||||
|
|
||||||
/** |
|
||||||
* Simple data test |
|
||||||
* |
|
||||||
* @author zhuangjiaju |
|
||||||
*/ |
|
||||||
public class SimpleData07Test { |
|
||||||
|
|
||||||
@Test |
|
||||||
public void simple() { |
|
||||||
ExcelWriter writer = EasyExcelFactory.writerBuilder().outputFile(FileUtil.createNewWriteFile("simple07.xlsx")) |
|
||||||
.head(SimpleData.class).build(); |
|
||||||
Sheet sheet = EasyExcelFactory.writerSheetBuilder().sheetNo(0).sheetName("simple").build(); |
|
||||||
writer.write(createData(10), sheet); |
|
||||||
writer.finish(); |
|
||||||
} |
|
||||||
|
|
||||||
@Test |
|
||||||
public void repeatWrite() { |
|
||||||
ExcelWriter writer = EasyExcelFactory.writerBuilder() |
|
||||||
.outputFile(FileUtil.createNewWriteFile("repeatWrite07.xlsx")).head(SimpleData.class).build(); |
|
||||||
Sheet sheet = EasyExcelFactory.writerSheetBuilder().sheetNo(0).sheetName("simple").build(); |
|
||||||
writer.write(createData(10), sheet); |
|
||||||
writer.write(createData(10), sheet); |
|
||||||
writer.finish(); |
|
||||||
} |
|
||||||
|
|
||||||
private List<SimpleData> createData(int count) { |
|
||||||
List<SimpleData> list = new ArrayList<SimpleData>(); |
|
||||||
for (int i = 0; i < count; i++) { |
|
||||||
SimpleData simpleData = new SimpleData(); |
|
||||||
simpleData.setString1("一号字" + i); |
|
||||||
simpleData.setString2("二号字" + i); |
|
||||||
list.add(simpleData); |
|
||||||
} |
|
||||||
return list; |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue