EasyExcel配置步骤

1.介绍

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目
参考
https://blog.csdn.net/u013044713/article/details/120249233

2.依赖


    com.alibaba
    easyexcel
    3.1.0

            poi-ooxml-schemas
            org.apache.poi

3.准备POJO类(模板)

@Data
public class DemoData {
    @ExcelProperty(value="字符串")
    private String string;
    @ExcelProperty(value="日期值")
    private Date date;
    @ExcelProperty(value="数字值")
    private Double doubleData;
}

4.读

核心思想:读取excel文件的每一个sheet(常用API读取第一个sheet),将每一行(自定排除第一行)解析,转换成一个对象(对象的属性和excel每行的列需要指定关系),每行都会触发一个invoke方法!

4.1.声明监听

// 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去
@Slf4j
public class DemoDataListener implements ReadListener {

    /**
     * 这个每一条数据解析都会来调用
     *
     * @param data    one row value. Is is same as {@link AnalysisContext#readRowHolder()}
     * @param context
     */
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        System.out.println(data);
    }

    /**
     * 所有数据解析完成了 都会来调用
     *
     * @param context
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // 这里也要保存数据,确保最后遗留的数据也存储到数据库
        System.out.println("解析完毕了吗?。。。。。。。。");
    }
}

4.2.读取

String fileName = "E:/demo.xlsx";
        EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();

5.写

核心思想:加载List

List list = ListUtils.newArrayList();
for (int i = 0; i < 10; i++) {
    DemoData data = new DemoData();
    data.setString("字符串" + i);
    data.setDate(new Date());
    data.setDoubleData(0.56);
    list.add(data);
}
EasyExcel.write("E:/xie.xlsx", DemoData.class).sheet("sheettttt").doWrite(list);

Original: https://www.cnblogs.com/sy2022/p/16495992.html
Author: 你会很厉害的
Title: EasyExcel配置步骤

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/593753/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • windows media play javascript 全屏 单击事件

    上面代码放在HTML页面中, 倒数三行的设置,是对应如果你要做JAVASCRIPT里是否要获取到,0是false,只是不明白为什么-1是true, 然后在HTML里面加入 docu…

    Java 2023年6月14日
    065
  • 继承

    基本概念 扩充一个类已有的功能 优点 父类定义公共的内容,方便统一修改 整体减少代码量 添加新类方便 语法 class 子类 extends 父类{} 子类又叫派生类 父类又叫超类…

    Java 2023年6月6日
    080
  • Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码

    有了源码包和 Demo 项目,我们就能够着手分析了。那么问题来了,我们对 Maven 源码并不熟悉,总不能一头扎进去看。那么,我们就用调试的方式分析吧,简单且精准。 在 Demo …

    Java 2023年6月16日
    062
  • JAVA SSH 框架介绍(转)

    转载自:http://www.admin10000.com/document/150.html SSH 为 struts+spring+hibernate 的一个集成框架,是目前较…

    Java 2023年5月29日
    0113
  • JAVA WEB 中的编码分析

    ServletPath和PathInfo中的中文 QueryString中的中文 public void service(org.apache.coyote.Request req…

    Java 2023年6月7日
    068
  • 如果你还没玩过Docker Stack管理服务,你已经out了,(送Portainer集群管理教程)

    我们上面使用 swarm部署服务,单个服务还好,如果很多个服务怎么来解决呢,这里就用到了 Docker Stack管理服务。 ​ 在上面我们学会了如何配置一个swarm集群,并且知…

    Java 2023年6月15日
    057
  • 【转】Spring Cache简介

    从3.1开始, Spring引入了对 Cache的支持。其使用方法和原理都类似于 Spring对事务管理的支持。 Spring Cache是作用在方法上的,其核心思想是这样的:当我…

    Java 2023年5月29日
    0102
  • Flask路由与蓝图Blueprint

    需求分析: 当一个庞大的系统中有很多小模块,在分配路由的时候怎么处理呢?全部都堆到一个py程序中,调用@app.route? 显然这是很不明智的,因为当有几十个模块需要写路由的时候…

    Java 2023年6月13日
    072
  • 戏说领域驱动设计(廿五)——领域事件

    任何事物都在变化着包括领域驱动设计这门学问。Evans在首次提到DDD概念后,后来出现了陆续又出现了很多的专家与学者对其理论进行了扩充比如:”领域事件”、&…

    Java 2023年6月7日
    075
  • redis中的字典结构是怎样的?

    点赞再看,养成习惯,微信搜索「 小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 基础概念 redis支持的5种数据类型中,有has…

    Java 2023年6月8日
    077
  • 将.cer证书导入java密钥库?

    导入 .cer从浏览器下载的证书文件(打开网址并挖掘详细信息)到cacerts keystore中 java_home\jre\lib\security为我工作,而不是尝试生成和使…

    Java 2023年5月29日
    060
  • Springboot整合Redis入门完整篇,零基础入门教学教程

    记录一次简易集成Redis缓存 自定义Redisconfig配置 自定义序列化操作 加深印像 整合前提工具环境准备: 1、redis官网 https://redis.io/down…

    Java 2023年6月5日
    075
  • ucore操作系统学习(一) ucore lab1系统启动流程分析

    一、ucore操作系统介绍 操作系统作为一个基础系统软件,对下控制硬件(cpu、内存、磁盘网卡等外设),屏蔽了底层复杂多样的硬件差异;对上则提供封装良好的应用程序接口,简化应用程序…

    Java 2023年6月8日
    085
  • 【原创】JDK 9-17新功能30分钟详解-语法篇-var

    JDK 9-17新功能30分钟详解-语法篇-var 介绍 JDK 10 JDK 10新增了新的关键字——var,官方文档说作用是: Enhance the Java Languag…

    Java 2023年6月13日
    076
  • 「Java分享客栈」Nacos配置中心称王称霸,我Apollo一生也不弱于人!

    前言 Apollo又称阿波罗配置中心,在前两年还是挺火的,但阿里SpringCloud套件席卷国内之后,nacos就成为了最被亲睐的分布式配置中心,nacos是配置中心和注册中心二…

    Java 2023年6月9日
    0137
  • BLOG-2 对7-10周的学习总结

    面向对象程序设计—七到十周综合性学习 引言:过去几周的Java的学习经历了PTA大作业四,期中考试,还有两次实验。对遇见的题目和知识点进行整理和分析。 PTA大作业四 …

    Java 2023年6月8日
    084
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球