zoukankan      html  css  js  c++  java
  • 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表格的样子:

    ----------天道酬勤----------------
  • 相关阅读:
    成为高级Java工程师,你必须要看的技术书籍
    MYSQL存储引擎介绍--应用场景
    RocketMq的安装使用
    调用第三方物流公司API即时查询物流信息
    移动终端处理器构成和基带芯片概述
    数据库水平切分(拆库拆表)的实现原理
    使用TortoiseGit操作分支的创建与合并
    mysql安装教程
    初步认识dubbo--小案例
    【算法】混合流体模拟demo
  • 原文地址:https://www.cnblogs.com/jiliunyongjin/p/15316382.html
Copyright © 2011-2022 走看看