java导入导出excel_Java导入导出Excel工具 easyexcel

Java导入导出Excel工具  easyexcel

做Java开发的同学,尤其是做管理后台的同学绝大多数都会接触到报表系统,这时候就少不了Excel的导入和导出了。Java解析生成Excel比较有名的有Apache POI ,但是POI存在缺陷就是所有的数据的解析都是在内存中进行的,内存消耗极大,如果数据量稍微一大容易出现内存溢出。alibaba提供的easyexcel就很好的解决了这个问题,不但不会出现内存溢出而且使用也极其方便,下面就一起来简单学习一下吧。

引入依赖包

在maven仓库中搜索 easyexcel 找到 alibaba的easyexcel依赖包,复制添加到pom文件中

f0ae535ecd1fbe631c4a72cc3c8bff59.png

1.简单写操作

1.1写入到指定文件夹

创建需要写出的数据模型 DemoData.class

8f2bbb049c8cc4fcf5e5cd67a13b65a0.png

贴上@ExcelProperty注解表示该字段需要导出到excel中去,value 的值表示该字段导出到excel中的所在列的列名。@ExcelIgnore注解表示忽略该字段,该字段将不会被导出到Excel中去。

1f0300ad795b914a23504408a893f510.png

上图是创建需要导出的示例数据和最终导出excel的代码,excel文件将被写入到 “C:/write/write.xlsx” 路径下。你没有看错真的核心导出代码只有两句就够了。

8145314f2c5452d0bd3839826e9403b0.png

f0bdbd1e03350e55b935693412d881c8.png

上图就是导出的Excel效果图,是不是比POI简单多了呢?

1.2 web中的写

7a29e42f525d076eacd68a1daff3b16b.png

所有的要导出的数据都在response中的outputStream流中,前端通过解析这个流就可以到处Excel文件,由于本人水平有限前端不够熟悉故而只给出后端Java代码。

2.简单读操作

2.1指定导入文件的读

说完了导出再来说说导入吧,导入比导出稍微复杂一点。导入有一个重要的概念叫做监听器。下图就是创建了一个监听器。但是需要强调的一点是 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以用构造方法传进去。

3034f6b3bb36f757839738f024582c9f.png

cb9f54296bfb4edd457f710a05ace75b.png

这里简单的saveData方法中就没有写存入数据库的业务,我们主要看的是有没有成功读入数据这里将读入的数据全部打印在控制台。

ff75161e53670cc9d7cd24d038c10be8.png

由控制台的打印输出可以看出,每读入3条数据也就是达到了自定义的BATCH_COUNT值就调用了一次saveData方法。最后一次只有一条数据是当所有的数据解析完之后最后调用了saveData方法。

2.2web中的读

74678e83764e277eba64d3dafa52ad48.png

此时读入的数据全部在listener中进行解析,然后调用业务方法将读入的数据进行存库就和之前讲的是一样的操作了,这里也只给出Java代码。

好了这就是easyexcel的初步简单用法,如有错误和不足之处请各位大佬不吝赐教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈.Net Core后端单元测试

1. 前言单元测试一直都是"好处大家都知道很多,但是因为种种原因没有实施起来"的一个老大难问题。具体是否应该落地单元测试,以及落地的程度, 每个项目都有自己的情况。本篇为个人认为"如何更好地写单元测试", 即更加偏向实践向中夹杂一些理论的…

图论的各种基本算法

本篇主要涉及到图论的基本算法,不包含有关最大流的内容。图论的大部分算法都是由性质或推论得出来的,想朴素想出来确实不容易。二分图(Is-Bipartite)一个图的所有顶点可以划分成两个子集,使所有的边的入度和出度顶点分别在这两个子集中。这个…

社区 正式发布了跨平台的 CoreWCF 0.1.0 GA

CoreWCF 项目在2021.2.19 正式发布了0.1.0 GA版本:https://github.com/CoreWCF/CoreWCF/releases/tag/v0.1.0 ,这个版本号虽然是0.1,但是它是可以投入生产的版本,而且是跨平台的,支持LInux部署WCF,当前仅支持http 和 n…

Prim 算法及其高效实现

转自:ivy-endhttp://www.ivy-end.com/archives/943背景最小生成树(Minimum Spanning Trees),简称MST。是图论中一个非常重要的概念。解决这个问题有两种算法,今天暂且先来讨论一下Prim Algorithm。不做特别说明&#x…

Silverlight实例教程 - Validation数据验证开篇

说起来Validation验证功能,相信大家都不陌生,在应用中,当需要用户交互输入时,开发人员都会加入一些验证代码,这样可以有效的避免应用异常出现,也可以使应用的错误提示信息清晰明了的显示在客户端&#xff0…

一日一技:微信扫码用户帐号绑定

概述最近在整一个微信扫码用户帐号绑定功能。为了满足用户帐号绑定场景的需要,通过生成用户自己的二维码,用户扫描后,公众号可以接收到事件推送。如下1、用户登录扫码2、绑定成功实现思路扫码绑定账户,其实就是扫描带有用户信息的…

计算机起源的数学思想

人类的历史可以看做一部关于解放的历史。也有这样的说法,懒惰是人类进步的动力。为了偷懒,人类不断的做着各种努力,发明了各种机器工具,将自己从繁重的劳动解放出来,另一方面,每一次大的进步,都…

Redis 通过 RDB 方式进行数据备份与还原

Redis 通过 RDB 方式进行数据备份与还原Intro有的时候我们需要对 Redis 的数据进行迁移,今天介绍一下通过 RDB(快照)文件进行 Redis 数据的备份和还原Redis 持久化Redis 的数据持久化有两种机制,一种是 RDB(Redis Database)&#…

java proguard 使用_一步步教你使用Proguard混淆Java源代码

ava代码很容易被反编译,以下使用proguard来保护我们的代码proguard选项很多,容易迷糊,现在就把我的配置写下来(实际使用中),以供参考2.准备好你的jar包,我在这里举例叫做test.jar。3.解压proguard,执行 bin…

稳定匹配问题——稳定婚姻算法设计

图片源自&#xff1a;美剧《How I met your mother》****本代码带有详细的注释&#xff0c;并在控制台输出时详细地说明了算法的过程&#xff0c;非常有助于新手理解稳定匹配问题和稳定婚姻算法的设计思路。****#include <iostream>using namespace std;bool finish_or_n…

如果诸葛亮用C#写出师表...

❝看到一篇18年的文章 "C版《出师表》"&#xff0c;站长觉得挺有意思的&#xff0c;就用C# 控制台也实现了一遍&#xff0c;技术上没啥难度&#xff0c;但复制代码费了1、2个小时&#xff0c;纯粹无聊写着玩&#xff0c;看者别在意枚举、类名、变量中文命名&#xff…

这16个数据可视化案例,惊艳了全球数据行业

数据可视化可以帮你更容易的解释趋势和统计数据。数据是非常强大的。当然&#xff0c;如果你能真正理解它想告诉你的内容&#xff0c;那它的强大之处就更能体现出来了。通过观察数字和统计数据的转换以获得清晰的结论并不是一件容易的事。必须用一个合乎逻辑的、易于理解的方式…

asp.net core 自定义 Content-Type

asp.net core 实现支持自定义 Content-TypeIntro我们最近有一个原本是内网的服务要上公网&#xff0c;在公网上有一层 Cloudflare 作为网站的公网流量提供者&#xff0c;CloudFlare 会有一层防火墙拦截掉一些非法的请求&#xff0c;我们有一些 API 会提交一些 html 内容&#x…

如何优雅的移植JavaScript组件到Blazor

Blazor作为一个新兴的交互式 Web UI 的框架&#xff0c;有其自身的优缺点&#xff0c;如果现有的 JavaScript 组件能移植到 Blazor&#xff0c;无疑让 Blazor 如虎添翼&#xff0c;本文就介绍一下自己在开发 BulmaRazor 组件库的时&#xff0c;封装现有的 JavaScript 组件的方法…

把握人工智能命脉的有效方法

最近广州的天气老是变幻无常&#xff0c;往往今天还热得要命第二天就寒风瑟瑟&#xff08;如下图&#xff09;&#xff0c;让小天甚是怀念每天艳阳高照的夏天&#xff0c;虽然热了点但好歹不用担心猝不及防地收到寒风暴雨黄色预警。说到夏天&#xff0c;不得不提一下1956年的那…

微软的焦虑?想多了!从.NET6 Preview2到大厂招聘,起飞

看了篇文章叫《从.NET看微软的焦虑》&#xff0c;这里忍不住先吐槽一下&#xff0c;看完不仅毫无收获&#xff0c;而且有一种先起个夺眼球的标题&#xff0c;然后再东拼西凑找证据。讲真的&#xff0c;微软市值基本上等于“阿里腾讯百度”三者之和&#xff0c;居然还焦虑的无法…

TED演讲:区块链将如何改变世界?看完太震撼了!

区块链是什么&#xff1f;如果你不知道&#xff0c;你应该了解&#xff1b;如果你知道&#xff0c;有可能你仍需要了解一些它工作原理。唐泰普斯科特在此使这改变世界、建立信任的科技变得简明易懂。他表示&#xff0c;这就是第二代互联网&#xff0c;将有可能改变我们的金钱、…

re管理器Java_自定义布局管理器-FormLayout

第二部分&#xff1a;自定义布局管理器在java.awt包与javax.swing包下有许多现成的布局类&#xff0c;比如BorderLayout、FlowLayout&#xff0c;还有较为复杂的、用于精确定位的布局类GridBagLayout、SpringLayout等。起初我刚刚从事gooey时(06年中)&#xff0c;企图依靠JDK自…

如何看待 70% 的程序员,缺乏数据结构和算法知识?

金三银四来了&#xff0c;各大厂动静不小&#xff0c;都在储备人才&#xff0c;绝对是程序员面试的黄金时间了&#xff0c;不少同学也在后台反馈面试中遇到的一些问题&#xff0c;所以今天想跟大家说说算法。说起算法&#xff0c;那大厂面试是绝对必考的&#xff0c;可以说是一…

Sorry,关注这些 IT 技术类公众号,真的可以为所欲为

工作和生活节奏超快的今天&#xff0c;想要不断提升自我&#xff0c;碎片化阅读学习是你最佳的选择&#xff0c;如果你已经有了一颗学习的心&#xff0c;却苦于不知道从哪里学习&#xff0c;那么&#xff0c;这些学习的工具和途径就很重要了。今天为你推荐一些 IT技术领域的微信…