mirror of https://github.com/alibaba/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
4.2 KiB
141 lines
4.2 KiB
7 years ago
|
package function.read;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import java.io.InputStream;
|
||
|
|
||
|
import com.alibaba.excel.ExcelReader;
|
||
|
import com.alibaba.excel.event.AnalysisEventListener;
|
||
|
import com.alibaba.excel.metadata.Sheet;
|
||
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
||
|
|
||
|
import function.listener.ExcelListener;
|
||
|
import function.model.OneRowHeadExcelModel;
|
||
|
import junit.framework.TestCase;
|
||
|
import org.junit.Test;
|
||
|
|
||
|
/**
|
||
|
* Created by jipengfei on 17/2/18.
|
||
|
*/
|
||
|
public class XLSX2007FunctionTest extends TestCase {
|
||
|
|
||
|
//创建没有自定义模型,没有sheet的解析器,默认解析所有sheet解析结果以List<String>的方式通知监听者
|
||
|
@Test
|
||
|
public void testExcel2007NoModel() {
|
||
|
InputStream inputStream = getInputStream("2007NoModelBigFile.xlsx");
|
||
|
try {
|
||
|
// 解析每行结果在listener中处理
|
||
|
AnalysisEventListener listener = new ExcelListener();
|
||
|
|
||
|
ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, listener);
|
||
|
|
||
|
reader.read();
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
|
||
|
} finally {
|
||
|
try {
|
||
|
inputStream.close();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
@Test
|
||
|
public void testExcel2007NoModel2() {
|
||
|
InputStream inputStream = getInputStream("test4.xlsx");
|
||
|
try {
|
||
|
// 解析每行结果在listener中处理
|
||
|
AnalysisEventListener listener = new ExcelListener();
|
||
|
|
||
|
ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, listener);
|
||
|
|
||
|
reader.read();
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
} finally {
|
||
|
try {
|
||
|
inputStream.close();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//创建没有自定义模型,但有规定sheet解析器,解析结果以List<String>的方式通知监听者
|
||
|
@Test
|
||
|
public void testExcel2007WithSheet() {
|
||
|
InputStream inputStream = getInputStream("111.xlsx");
|
||
|
|
||
|
try {
|
||
|
// 解析每行结果在listener中处理
|
||
|
AnalysisEventListener listener = new ExcelListener();
|
||
|
|
||
|
ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, listener);
|
||
|
reader.read(new Sheet(1, 0));
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
} finally {
|
||
|
try {
|
||
|
inputStream.close();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
//创建需要反射映射模型的解析器,解析结果List<Object> Object为自定义的模型
|
||
|
@Test
|
||
|
public void testExcel2007WithReflectModel() {
|
||
|
InputStream inputStream = getInputStream("2007.xlsx");
|
||
|
try {
|
||
|
|
||
|
// 解析每行结果在listener中处理
|
||
|
AnalysisEventListener listener = new ExcelListener();
|
||
|
|
||
|
ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, listener);
|
||
|
|
||
|
reader.read(new Sheet(1, 1, OneRowHeadExcelModel.class));
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
} finally {
|
||
|
try {
|
||
|
inputStream.close();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
@Test
|
||
|
public void testExcel2007MultHeadWithReflectModel() {
|
||
|
InputStream inputStream = getInputStream("2007_1.xlsx");
|
||
|
|
||
|
try {
|
||
|
|
||
|
// 解析每行结果在listener中处理
|
||
|
AnalysisEventListener listener = new ExcelListener();
|
||
|
|
||
|
ExcelReader reader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, listener);
|
||
|
|
||
|
reader.read(new Sheet(1, 4, OneRowHeadExcelModel.class));
|
||
|
|
||
|
} catch (Exception e) {
|
||
|
e.printStackTrace();
|
||
|
} finally {
|
||
|
try {
|
||
|
inputStream.close();
|
||
|
} catch (IOException e) {
|
||
|
e.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
private InputStream getInputStream(String fileName) {
|
||
|
return Thread.currentThread().getContextClassLoader().getResourceAsStream("" + fileName);
|
||
|
|
||
|
}
|
||
|
}
|