EasyExcel的使用

一、写操作

  • 将java中的数据写入excel表格

1.导入依赖

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

2.创建实体类

package com.listening.easyexcel;


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

@Data
public class UserData {

    @ExcelProperty("用户编号")  //注解说明写入表格中的表头
    private int uid;

    @ExcelProperty("用户名称")
    private String username;
}

3.编写测试类

package com.listening.easyexcel;

import com.alibaba.excel.EasyExcel;

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

public class TestWrite {

    public static void main(String[] args) {
        //设置 写如文件的路径和文件名称
        //构建list集合
        List<UserData> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            UserData data = new UserData();
            data.setUid(i);
            data.setUsername(i + "lucy");
            list.add(data);
        }

        String fileName = "D:\\excel\\01.xlsx";  //写入文件的路径

        EasyExcel.write(fileName, UserData.class).sheet("用户信息")
                .doWrite(list);
				//sheet()中的参数,说明写入工作表的名称

    }
}

执行结果:
image

二、读操作

  • 将表格中的数据读取到java中

1.导入依赖(同写操作)

2.编写实体类

package com.listening.easyexcel;


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

@Data
public class UserDataRead {

    @ExcelProperty(value = "用户编号",index = 0)  //index的值说明第x列
    private int uid;

    @ExcelProperty(value = "用户名称",index = 1)
    private String username;
}

3.编写监听器(关键一步)

package com.listening.easyexcel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

import java.util.Map;

public class ExcelListener extends AnalysisEventListener<UserDataRead> {

    //一行一行读取excel内容,从第二行读取(因为第一行是表头)
    @Override
    public void invoke(UserDataRead userDataRead, AnalysisContext analysisContext) {
		//将读取的表格信息数据
        System.out.println(userDataRead);
    }

    //读取表头信息
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
		//输出表头信息
        System.out.println("表头信息"+headMap);
    }

    //读取之后会执行
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }


}

3.编写测试类

package com.listening.easyexcel;

import com.alibaba.excel.EasyExcel;

public class TestRead {
    public static void main(String[] args) {
        //读取文件路径
        String fileName = "D:\\excel\\01.xlsx";

        //调用方法实现读取操作
        EasyExcel.read(fileName,UserDataRead.class,new ExcelListener()).sheet().doRead();

    }
}

执行结果:

image

posted @ 2021-05-11 16:44  wkp_listening  阅读(111)  评论(0)    收藏  举报