signed

QiShunwang

“诚信为本、客户至上”

在线教育--EasyExcel

2021/6/9 0:47:15   来源:

EasyExcel 是阿里巴巴提供的一个 对excel操作框架 可以高效的对excel进行读,写 操作

写 做法
1 导入依赖


    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.6</version>
    </dependency>

2 创建对应excel的实体类

package com.mumu.eduservice.entity.excel;


import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class MyExcel {


    //设置表头名称
    @ExcelProperty("学生id")
    private  Integer id ;
    @ExcelProperty("学生姓名")
    private String name;
    @ExcelProperty("学生邮箱")
    private String email;


}

3 对excel进行写的操作

package com.mumu.eduservice.entity.excel;

import com.alibaba.excel.EasyExcel;

import java.util.ArrayList;
import java.util.List;

public class Test {




    public static void main(String[] args) {
        //设置要写入哪个文件路径下  文件不存在会自动创建
        String filename="D:\\write.xlsx";

        //用Easexle 直接调用写的方法write  参数1 文件路径名  参数2 实体类class    doWrite(“这里填要写入的数据”);
        EasyExcel.write(filename,MyExcel.class).sheet("学生列表").doWrite(Test.getlist());


    }
        //

            private  static List getlist(){

                List list=new ArrayList();
                for (int i=0;i<10 ; i++){

                    MyExcel myExcel=new MyExcel();
                    myExcel.setId(i);
                    myExcel.setEmail(i+"456"+"@"+i);
                    myExcel.setName(i+"p");
                    list.add(myExcel);
                }

        return list;
            }

}

执行结果
通过一个for循环 新建立的excel进行写的操作

EasyExcel 读的操作
读的操作 就是读取excel表格 将数据输出到想要输出的地方 比如说控制台
做法
1 创建excel的实体类


@Data
public class MyExcel {


    //设置表头名称
    @ExcelProperty("学生id")
    private  Integer id ;
    @ExcelProperty("学生姓名")
    private String name;
    @ExcelProperty("学生邮箱")
    private String email;


}

2 创建一个类 去继承AnalysisEventListener 重写里面的两个方法

public class Myread extends AnalysisEventListener {

    @Override//一行一行的读取表格数据
    public void invoke(Object o, AnalysisContext analysisContext) {
        System.out.println("**"+o);


    }


    @Override//读取完之后
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

3 编写读的方法执行读的操作 read的意思的是读的意思
参数参照写的操作中的参数


    public static void main(String[] args) {
        String filename="D:\\write.xlsx";

        EasyExcel.read(filename,MyExcel.class,new Myread()).sheet().doRead();

    }

结果
控制台输出结果