Java轻松读写Excel--EasyExcel的基本使用

简介

EasyExcel是阿里出品的一个解析Excel的工具,具有使用简单、节省内存的特点。
EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理。

EasyExcel官方GitHub地址

使用方式

1、创建一个普通的maven项目
2、pom中引入xml相关依赖
<dependencies>
    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <!--easyexcel-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.1</version>
    </dependency>
    <!--lombok-->
     <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
        </dependency>
</dependencies>

查看pom文件的依赖结构,发现easyexcel依赖于Apache poi,
在这里插入图片描述

3、创建实体类
  • 设置表头和添加的数据字段(表头即Excel表格的列名)
@Data
public class Data4Excel {

    // 设置excel的表头名称
    @ExcelProperty("学生编号")
    private int stuNo;

    // 设置excel的表头名称
    @ExcelProperty("学生姓名")
    private String stuName;
}
4 、实现写操作
  • 创建一个测试类
public class Write {

    /**
     * 最简单的写法
     */
    public static void main(String[] args) throws Exception{
        String fileName = "C:\\Users\\KenX\\Desktop\\easyexcel.xlsx";
        // 这里需要指定:文件名、写用哪个class、然后写到第一个sheet、写的数据
        // 然后文件流会自动关闭
        EasyExcel.write(fileName,Data4Excel.class).sheet("写入方法一").doWrite(data());
    }

    // 模拟数据,封装到list集合中,用于后续写到Excel文件
    private static List<Data4Excel> data() {
        ArrayList<Data4Excel> data4Excels = new ArrayList<>();
        for (int i = 1; i < 11; i++) {
            Data4Excel data = new Data4Excel();
            data.setStuNo(i);
            data.setStuName("学生-"+i);
            data4Excels.add(data);
        }
        return data4Excels;
    }
}
  • 查看文件,已经写入成功
    在这里插入图片描述
5、实现读操作
  • 01、因为列固定,行不固定,所以要修改实体类属性
@Data
public class Data4Excel {

    // 设置excel的表头名称
    @ExcelProperty(value = "学生编号",index = 0)
    private int stuNo;

    // 设置excel的表头名称
    @ExcelProperty(value = "学生姓名",index = 1)
    private String stuName;
}
  • 02、创建读取操作的监听器
//创建读取excel监听器
public class ExcelListener extends AnalysisEventListener<Data4Excel> {

    //创建list集合封装最终的数据
   List<Data4Excel> list = new ArrayList<>();

    //一行一行去读取excle内容
    @Override
    public void invoke(Data4Excel data4Excel, AnalysisContext analysisContext) {
        System.out.println("***"+data4Excel);
        list.add(data4Excel);
    }

    //读取excel表头信息
    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        System.out.println("*****表头信息:"+headMap);
    }
    
    //读取完成后执行的操作
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}
  • 03、最终读取操作
public class Read {
    public static void main(String[] args) {
        /**
         * 最简单的写法
         */
        String fileName = "C:\\Users\\KenX\\Desktop\\easyexcel.xlsx";
        // 这里需要指定:文件名、读用哪个class、然后读取第一个sheet
        // 文件流会自动关闭
        EasyExcel.read(fileName, Data4Excel.class, new ExcelListener()).sheet().doRead();
    }
}
效果如下

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值