Java-EasyExcel的使用

什么是easyExcel

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。

官方文档:

官网地址如下:

https://yuque.com/easyexcel

git地址:

https://gitcode.net/mirrors/alibaba/easyexcel?utm_source=csdn_github_accelerator

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类,实现invokedoAfterAllAnalysed方法,并且实现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.将上面写入的数据读取后,效果图:

 

阅读剩余
THE END