阿里开源 excel处理框架
以使用简单、节省内存著称
EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理
1.添加pom依赖
<dependency><groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
<!--xls-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!--xlsx-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
2.创建对应的实体,主要是注解
创建实体
@Data
public class DemoData {
//设置表头名称
@ExcelProperty(value = "学生编号",index = 0)
private int sno;
//设置表头名称
@ExcelProperty(value = "学生姓名",index = 1)
private String sname;
}
3.创建测试类(写)
@Test
public void writeTest(){
// 写法1
String fileName = "D:\\test\\201021\\write.xlsx";
// 这里需要指定写用哪个class去写,然后写到第一个sheet,名字为模板然后文件流会自动关闭
// 如果这里想使用03 则传入excelType参数即可
EasyExcel.write(fileName, DemoData.class).sheet("学生列表").doWrite(data());
}
private static List<DemoData> data() {
List<DemoData> list = new ArrayList<DemoData>();
for (int i = 0; i < 10; i++) {
DemoData data = new DemoData();
data.setSno(i);
data.setSname("张三"+i);
list.add(data);
}
return list;
}
4.创建测类(读)
4.1 创建监听器
public class ExcelListener extends AnalysisEventListener<DemoData> {
//读取每一行数据
@Override
public void invoke(DemoData demoData, AnalysisContext analysisContext) {
System.out.println(demoData);
}
//数据读取完做的事
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
4.2测试方法
@Test
public void readTest(){
String fileName = "D:\\test\\201021\\write.xlsx";
EasyExcel.read(fileName, DemoData.class,new ExcelListener()).sheet().doRead();
}
posted on 2022-08-23 12:01 AnkangWenqiang 阅读(157) 评论(0) 编辑 收藏 举报