读取方法
示例表格
| 姓名 | 年龄 | 性别 |
|---|---|---|
| 张三 | 20 | 男 |
| 李芳 | 18 | 女 |
base:
创立对象使用easyExcel创建对象方式,如:
@Datapublic class TestThreeEntity {@ExcelProperty("姓名")private String name;@ExcelProperty("年龄")private String age;@ExcelProperty("性别")private String sex;}
1.简单读取
public class TestDemo {public static void main(String[] args) {/*** 创建Excel监听器*/BaseExcelListener<TestThreeEntity> listener = new BaseExcelListener<>();/*** 创建ExcelConfig对象*/ExcelConfig excelConfig = new ExcelConfig();/*** 读取方式1,2,3选择一种即可*///1.filePath为使用文件绝对路径进行读取excelConfig.setFilePath("/Users/test/Desktop/123.xlsx");//2.file为使用文件对象进行读取File file = new File("/Users/test/Desktop/123.xlsx");excelConfig.setFile(file);//3.inputStream为使用文件流方式进行读取FileInputStream inputStream = new FileInputStream(file);excelConfig.setInputStream(inputStream);/*** 指定读取excel的对象class*/excelConfig.setClazz(TestThreeEntity.class);/*** 填入监听器*/excelConfig.setListener(listener);/*** 创建读取工具对象*/BaseExcelUtils<TestThreeEntity> utils = new BaseExcelUtils<>();/*** 调用readExcel方法传入ExcelConfig对象*/List<TestThreeEntity> testTwoEntities = utils.readExcel(excelConfig);System.err.println(testTwoEntities.size());for (TestThreeEntity item : testTwoEntities) {System.err.println(item);}}}
结果:
TestThreeEntity(name=张三, age=20, sex=男)
TestThreeEntity(name=李芳, age=18, sex=女)
2.增加过滤引擎
public class MyExcelFilter extends BaseExcelFilter<TestEntity> {@Overridepublic ExcelResult filter(TestEntity testEntity) {if(testEntity.getAge()==20){return ExcelResult.fail();}return ExcelResult.success();}}
public class TestDemo {public static void main(String[] args) {/*** 创建Excel监听器*/BaseExcelListener<TestThreeEntity> listener = new BaseExcelListener<>();/*** 创建自定义过滤引擎*/MyExcelFilter filter = new MyExcelFilter();/*** 创建ExcelConfig对象*/ExcelConfig excelConfig = new ExcelConfig();/*** 读取方式1,2,3选择一种即可*///1.filePath为使用文件绝对路径进行读取excelConfig.setFilePath("/Users/test/Desktop/123.xlsx");//2.file为使用文件对象进行读取File file = new File("/Users/test/Desktop/123.xlsx");excelConfig.setFile(file);//3.inputStream为使用文件流方式进行读取FileInputStream inputStream = new FileInputStream(file);excelConfig.setInputStream(inputStream);/*** 指定读取excel的对象class*/excelConfig.setClazz(TestThreeEntity.class);/*** 填入监听器*/excelConfig.setListener(listener);/*** 填入过滤引擎*/excelConfig.setFilter(filter);/*** 创建读取工具对象*/BaseExcelUtils<TestThreeEntity> utils = new BaseExcelUtils<>();/*** 调用readExcel方法传入ExcelConfig对象*/List<TestThreeEntity> testTwoEntities = utils.readExcel(excelConfig);System.err.println(testTwoEntities.size());for (TestThreeEntity item : testTwoEntities) {System.err.println(item);}}}
结果:
TestThreeEntity(name=李芳, age=18, sex=女)
3.添加存储引擎
public class MyExcelSave extends BaseExcelSave<TestEntity> {@Autowiredprivate UserMapper userMapper;@Overridepublic ExcelResult saveData(List<TestEntity> testEntity) {for(TestEntity item : testEntity)int size = userMapper.insert(testEntity);if(size>1){return ExcelResult.success();}return ExcelResult.fail();}}
public class TestDemo {public static void main(String[] args) {/*** 创建Excel监听器*/BaseExcelListener<TestThreeEntity> listener = new BaseExcelListener<>();/*** 创建自定义过滤引擎*/MyExcelSave save = new MyExcelSave();/*** 创建ExcelConfig对象*/ExcelConfig excelConfig = new ExcelConfig();/*** 读取方式1,2,3选择一种即可*///1.filePath为使用文件绝对路径进行读取excelConfig.setFilePath("/Users/test/Desktop/123.xlsx");//2.file为使用文件对象进行读取File file = new File("/Users/test/Desktop/123.xlsx");excelConfig.setFile(file);//3.inputStream为使用文件流方式进行读取FileInputStream inputStream = new FileInputStream(file);excelConfig.setInputStream(inputStream);/*** 指定读取excel的对象class*/excelConfig.setClazz(TestThreeEntity.class);/*** 填入监听器*/excelConfig.setListener(listener);/*** 填入过滤引擎*/excelConfig.setSave(save);/*** 创建读取工具对象*/BaseExcelUtils<TestThreeEntity> utils = new BaseExcelUtils<>();/*** 调用readExcel方法传入ExcelConfig对象*/List<TestThreeEntity> testTwoEntities = utils.readExcel(excelConfig);System.err.println(testTwoEntities.size());for (TestThreeEntity item : testTwoEntities) {System.err.println(item);}}}
写入方法
1.导出到磁盘
public class TestDemo {
public static void main(String[] args) {
List list = new ArrayList<TestThreeEntity>();
BaseExcelUtils<TestThreeEntity> utils = new BaseExcelUtils<>();
//1.存储路径,2.文件名,3.class对象,4.数据
utils.writeExcel("/test/test/","file.xlsx",TestThreeEntity.class,list);
}
}
2.IO流导出
public class TestDemo {
public static void main(String[] args) {
List list = new ArrayList<TestThreeEntity>();
BaseExcelUtils<TestThreeEntity> utils = new BaseExcelUtils<>();
utils.writeExcel(response,"file.xlsx",TestThreeEntity.class,list);
}
}
