EasyExcel 进行读写操作

目录

一、依赖

二、创建实体类

三、Excel 写操作

四、Excel 读操作


一、依赖


引入EasyExcel pom 文件和 poi 原始的 Excel 导出、导入的 pom,因为 EasyExcel 是在基础之上进行了封装

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>2.1.1</version>
</dependency>
<!--xls-->
<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>

二、创建实体类


主要用来设置Excel 存储数据的类型和表头

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

/**
 * @description: Excel到处实体类
 * @author: zzx
 * @createDate: 2020/6/9
 * @version: 1.0
 */
@Data
public class DemoData {

    //此注解主要用来设置 Excel 的表头
    @ExcelProperty("学生编号")
    private Integer sno;

    @ExcelProperty("学生姓名")
    private String sname;
}

三、Excel 写操作


通过 EasyExcel.write 方法完成数据的写操作

import com.alibaba.excel.EasyExcel;
import com.edu.eduservice.entity.DemoData;
import com.edu.eduservice.entity.EduTeacher;

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

/**
 * @description:
 * @author: zzx
 * @createDate: 2020/6/1
 * @version: 1.0
 */
public class Test {

    @org.junit.Test
    public void test(){
        //1、设置写入文件夹地址和Excel文件名称
        String filename = "E:\\Project\\write.xlsx";
        //2、造数据
        DemoData demoData = new DemoData();
        demoData.setSno(1);
        demoData.setSname("zzx");
        List<DemoData> list = Arrays.asList(demoData);
        //3、调用 easyExcel 中的write 方法写数据
        EasyExcel.write(filename, DemoData.class).sheet("学生列表").doWrite(list);
    }
}

四、Excel 读操作


【1】创建和 Excel 对应实体类,标记对应关系

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

/**
 * @description: Excel到处实体类
 * @author: zzx
 * @createDate: 2020/6/9
 * @version: 1.0
 */
@Data
public class DemoData {

    //此注解主要用来设置 Excel 的表头
    @ExcelProperty(value = "学生编号",index = 0)
    private Integer sno;

    @ExcelProperty(value ="学生姓名",index = 1)
    private String sname;
}

【2】创建监听进行 excel 文件读取

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

import java.util.Map;

/**
 * @description:
 * @author: zzx
 * @createDate: 2020/6/9
 * @version: 1.0
 */
public class ExcelListener extends AnalysisEventListener<DemoData> {
    //一行一行读取excel内容
    @Override
    public void invoke(DemoData data, AnalysisContext analysisContext) {
        System.out.println("****"+data);
    }
    //读取表头内容
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("表头:"+headMap);
    }
    //读取完成之后
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) { }
}

【3】通过 EasyExcel.read读取数据

package com.test.datasource;

import com.alibaba.excel.EasyExcel;
import com.edu.eduservice.entity.DemoData;
import com.edu.eduservice.entity.ExcelListener;
/**
 * @description:
 * @author: zzx
 * @createDate: 2020/6/1
 * @version: 1.0
 */
public class Test {

    @org.junit.Test
    public void test(){
        //1、设置写入文件夹地址和Excel文件名称
        String filename = "E:\\Project\\write.xlsx";
        //2、Excel 读取操作
        EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet().doRead();
    }
}

【4】测试结果

 
 ----架构师资料,关注公众号获取----

猜你喜欢

转载自blog.csdn.net/zhengzhaoyang122/article/details/106652701