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.
139 lines
4.2 KiB
139 lines
4.2 KiB
package function.read; |
|
|
|
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; |
|
|
|
import java.io.IOException; |
|
import java.io.InputStream; |
|
|
|
/** |
|
* 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); |
|
|
|
} |
|
}
|
|
|