easyExcel极速快速简单入门 1分钟入门 Java Springboot

依赖

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
        </dependency>

写操作:

写出这样一个excel

1.编写一个写入类

package com.xjh.eduservice.entity.vo;


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

//lombok注释 可以getter setter toString代替
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExcelWriteSubject {


        //每行的数据是一个对象 需要每列的表头
        //设置表头名称
        @ExcelProperty("一级分类")
        private String oneSubject;

        //设置表头名称
        @ExcelProperty("二级分类")
        private String twoSubject;

}

excel里每一行看做一个对象   改行的每一列数据的表头用

@ExcelProperty注解设置

2.方法:获得一个装满每行数据的列表

public static List<ExcelWriteSubject> excelWrite(){
        List<ExcelWriteSubject> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            ExcelWriteSubject data = new ExcelWriteSubject();
            data.setOneSubject("前端");
            data.setTwoSubject("ccccc+++++");
            list.add(data);
        }
        return list;
    }

写入 

//写方法
public static void main(String[] args) throws Exception {
        String fileName = "F:\\11.xlsx";
        //参数 文件名 每行内容的类 下面的sheet名 类的列表数据
        EasyExcel.write(fileName, ExcelWriteSubject.class)
                .sheet("写入方法一").doWrite(excelWrite());
    }
write方法 参数分别是 1.文件名 2.写入内容的类 

sheet代表表格下面显示的sheet

dowriter 传入list集合

 

读操作:

1.创建读类

package com.xjh.eduservice.entity.vo;

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

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExcelReadSubject {
    //设置列对应的属性
    @ExcelProperty(index = 0)
    private String oneSubject;

    //设置列对应的属性
    @ExcelProperty(index = 1)
    private String twoSubject;

}
index = 0代表第一列的数据  
index = 1代表第二列 以此类推

2.读方法需要写Listener监听器

package com.xjh.eduservice.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import com.xjh.eduservice.entity.vo.ExcelReadSubject;

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

//创建读取excel监听器
public class ExcelListener extends AnalysisEventListener<ExcelReadSubject> {

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

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

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

    //读取完成后执行
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    }
}

3.读取方法

 //读
    public static void main(String[] args) throws Exception {
        String fileName = "F:\\11.xlsx";
        // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
        EasyExcel.read(fileName, ExcelReadSubject.class, new ExcelListener()).sheet().doRead();
    }

sheet表示读取哪个sheet

 

 

 

 

上面是本地

--------------------------------------------

网络流

 try {
            EasyExcel.read(file.getInputStream(),ExcelReadSubject.class,
                    new ExcelListener(eduSubjectService)).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值