Java-EasyExcel的使用
什么是easyExcel
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。
官方文档:
官网地址如下:
git地址:
easyExcel使用步骤
1.导入依赖(3.1.0+版本不需要poi依赖)
<!-- easyExcel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version>
</dependency>
2.写数据
1、创建要写入的实体类(@ExcelProperty对应excel第一行的字段名)
@Data
public class Demo {
@ExcelProperty("学生编号")
private Integer sno;
@ExcelProperty("学生姓名")
private String sname;
}
2.开始写入数据
通过一个for循环生成一个Dome list,进行插入
EasyExcel.write(filename, Demo.class).sheet("学生列表").doWrite(list);
@SpringBootTest
class EasyExcelApplicationTests {
@Test
void contextLoads() {
List<Demo> list=new ArrayList<>();
for(int i=0;i<10;i++){
Demo demo=new Demo();
demo.setSno(i);
demo.setSname("data"+i);
list.add(demo);
}
String filename="D:/桌面/test.xlsx";
EasyExcel.write(filename, Demo.class).sheet("学生列表").doWrite(list);
}
运行后效果:
读数据
1、创建实体类,在@ExcelProperty添加index字段,表示所在列
@Data
public class Demo {
@ExcelProperty(value = "学生编号",index = 0)
private Integer sno;
@ExcelProperty(value = "学生姓名",index = 1)
private String sname;
}
2.创建Excel监听器
继承AnalysisEventListener类,实现invoke和doAfterAllAnalysed方法,并且实现invokeHeadMap方法,该方法在右键-生成-实现方法中有
其中invoke是一行一行读
doAfterAllAnalysed是读完之后操作
invokeHeadMap是读表头
public class ExcelListener extends AnalysisEventListener<Demo> {
/**
* 一行一行读
* @param demo
* @param analysisContext
*/
@Override
public void invoke(Demo demo, AnalysisContext analysisContext) {
System.out.println("---"+demo);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头="+headMap);
}
3.实现读的操作
String filename="D:/test.xlsx";
EasyExcel.read(filename,Demo.class,new ExcelListener()).sheet().doRead();
4.将上面写入的数据读取后,效果图:
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/2950.html
文章版权归作者所有,未经允许请勿转载。
THE END