欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用EasyExcel实现读写操作

程序员文章站 2022-03-05 15:29:42
...

实现写操作

第一步:导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>3.17</version>
</dependency>

<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>3.17</version>
</dependency>

注意:EasyExcel的依赖要和poi的依赖对应才行(2.1.1对应3.17)

第二步:创建实体类


@Data
public class DemoData {
    //设置excel表头
    @ExcelProperty("学生编号")
    private Integer sno;
    @ExcelProperty("学生名称")
    private String sname;
}

第三步:写入

public class TestEasyExcel {
    public static void main(String[] args) {
        //实现excel写的操作
        //1,设置写入文件夹地址和excel文件名称
        String filename = "D:\\write.xlsx";

        EasyExcel.write(filename,DemoData.class).sheet("学生列表").doWrite(getData());
    }
    //要写入的数据
    public static List<DemoData> getData(){
        List<DemoData> list = new ArrayList<>();
        for(int i = 0; i < 10 ; i++){
            DemoData data = new DemoData();
            data.setSno(i);
            data.setSname("luxi"+i);
            list.add(data);
        }
        return  list;
    }
}

运行后效果:
使用EasyExcel实现读写操作
实现读操作

第一步:创建excel对应实体类,标记对应列关系

@Data
public class DemoData {
    //设置excel表头,标记对应列关系
    @ExcelProperty(value = "学生编号",index = 0)
    private Integer sno;
    @ExcelProperty(value = "学生名称",index = 1)
    private String sname;
}

第二步:创建excel监听类

//继承AnalysisEventListener ,DemoData -对应实体类
public class ExcelListener extends AnalysisEventListener<DemoData> {
    //一行一行读取数据
    @Override
    public void invoke(DemoData demoData, AnalysisContext analysisContext) {
        System.out.println("****"+demoData);
    }
    //读取表头
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头:"+headMap);
    }
    //读取完成之后
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

第三步:读取

 public static void main(String[] args) {
        //实现excel读的操作
        String filename = "D:\\write.xlsx";
        EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet().doRead();

    }

运行效果:

使用EasyExcel实现读写操作