EasyExcel对Excel 进行写 操作

一、EasyExcel简介

1、EasyExcel特点

  • Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。
  • EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
  • EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。

2、github地址+官方文档

https://github.com/alibaba/easyexcel

https://www.yuque.com/easyexcel/doc/write

 

二、代码

1、引入依赖 (EasyExcel本质上是对poi做的封装 所以还需要引入poi的依赖(2者版本要对应))

    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
        <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>
    </dependencies>

 

2、Excel表头的实体类

package com.atguigu.demo.excel;

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

//lombok自动生成get set 方法
@Data
public class DemoDate {

   //设置Excel 的表头
    @ExcelProperty("学生编号")
     private Integer sno;

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


}

 

3、测试的main方法

 

package com.atguigu.demo.excel;

import com.alibaba.excel.EasyExcel;

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

public class ExcelMain {

    public static void main(String[] args) {

        String filename="E:\\学生信息文档.xlsx";

        //调用EasyExcel实现写的操作   write里的2个参数 第一个参数 文件路径  自动关闭io流
        //第二个参数实体类的class
        EasyExcel.write(filename,DemoDate.class).sheet("学生列表").doWrite(ExcelMain.getDate());
    }

    public  static List<DemoDate> getDate(){
        List<DemoDate> list=new ArrayList<>();
         for (int i=0;i<10;i++){

              DemoDate data=new DemoDate();
             data.setSname("mangoubiubiu"+i);
             data.setSno(i);
             list.add(data);

         }
          return  list;
    }

}

 

三、效果

 

 

 

 

 

posted @ 2020-10-07 16:28  KwFruit  阅读(170)  评论(0编辑  收藏  举报