读取方法
示例表格
姓名 | 年龄 | 性别 |
---|---|---|
张三 | 20 | 男 |
李芳 | 18 | 女 |
base:
创立对象使用easyExcel创建对象方式,如:
@Data
public 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> {
@Override
public 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> {
@Autowired
private UserMapper userMapper;
@Override
public 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);
}
}