EasyExcel 简单使用小结

官网地址:https://alibaba-easyexcel.github.io/quickstart

看官网感觉稍微有点复杂,自己做个小demo,以后要用的话拿来就可以上手了,当然有些小细节还是得参照官网来。

总体步骤:

1.导入jar包

2.写实体类

3.写测试类,读excel文件和写excel文件

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.11</version>
        </dependency>
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

import java.util.Date;

/**
 * @author :Li Bin
 * @date : 2021/9/21 11:53
 * @description: 完成实体类和excel列数据的映射。
 */
@Data
public class ExcelData {

    @ExcelProperty("ID")
    private String id;

    @ExcelProperty("用户名")
    private String name;

    @ExcelProperty("邮箱")
    private String email;

    @ExcelProperty("性别")
    private String gender;

    @ExcelProperty("积分")
    private Integer score;

    @ExcelProperty("IP")
    private String ip;

    @ExcelProperty("登陆次数")
    private Integer count;

    @ExcelProperty("加入时间")
    private Date date;
}

主要的读和写excel的类:

import com.aiguigu.demo.pojo.ExcelData;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;

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

/**
 * @author :Li Bin
 * @date : 2021/9/21 11:57
 * @description:
 */
public class ExcelTest {

    public static void main(String[] args) {
        List<ExcelData> list = paraseDada();
        //list 写入excel
        EasyExcel.write("/Users/bitidawang/Downloads/easyExcel_副本.xlsx")
                .head(ExcelData.class)
                //让表头和列数据一样宽,可以加下面这一行。官网说不会非常一致,我试了一下还好,就是把我的表头ID也给换行了。
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                .excelType(ExcelTypeEnum.XLSX)
                .sheet("用户数据表")
                .doWrite(list);
    }

    public static List<ExcelData> paraseDada(){
        List<ExcelData> list=new ArrayList<ExcelData>();
        EasyExcel.read("/Users/bitidawang/Downloads/easyExcel.xlsx")
                .head(ExcelData.class)
                .sheet()
                .registerReadListener(new AnalysisEventListener<ExcelData>() {

                    /**
                     * 每解析一条数据都会调用该方法
                     * @param excelData
                     * @param analysisContext
                     */
                    @Override
                    public void invoke(ExcelData excelData, AnalysisContext analysisContext) {
                        list.add(excelData);
                    }

                    /**
                     * 解析完毕的回调方法
                     * @param analysisContext
                     */
                    @Override
                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

                    }
                }).doRead();
        //打印查看输出结果
        for (ExcelData excelData : list) {
            System.out.println(excelData);
        }
        return list;
    }
}

excel表格的样子:

----------天道酬勤----------------
原文地址:https://www.cnblogs.com/jiliunyongjin/p/15316382.html