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表格的样子:

    ----------天道酬勤----------------
  • 相关阅读:
    一致性哈希算法
    Discourse 的标签(Tag)只能是小写的原因
    JIRA 链接 bitbucket 提示错误 Invalid OAuth credentials
    JIRA 如何连接到云平台的 bitbucket
    Apache Druid 能够支持即席查询
    如何在 Discourse 中配置使用 GitHub 登录和创建用户
    Apache Druid 是什么
    Xshell 如何导入 PuTTYgen 生成的 key
    windows下配置Nginx支持php
    laravel连接数据库提示mysql_connect() :Connection refused...
  • 原文地址:https://www.cnblogs.com/jiliunyongjin/p/15316382.html
Copyright © 2011-2022 走看看