简单了解一下 EasyExcel
2020-05-19 16:11:55来源:博客园 阅读 ()
简单了解一下 EasyExcel
一、EasyExcel
1、简介
EasyExcel 是一个基于 Java 的简单、省内存的读写 Excel 的开源项目。
在尽可能节约内存的情况下支持读写百 M 的 Excel(没有一次性将数据读取到内存中,从磁盘中一行行读取,从而节约内存)。
EasyExcel 采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。
简单地理解:可以方便、快速的读取、写入 execl 内容。
【官方文档地址:】 https://alibaba-easyexcel.github.io/index.html https://www.yuque.com/easyexcel
2、SpringBoot 快速整合 EasyExcel(实现写操作)
(1)创建一个 SpringBoot 项目。
(2)添加依赖信息。
<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version> </dependency>
(3)添加 excel 对应的实体类信息。
package com.lyh.test.testeasyexcel.entity; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; @Data public class User { @ExcelProperty("姓名") private String userName; @ExcelProperty("邮箱") private String email; @ExcelProperty("年龄") private Integer age; }
(4)编写测试方法,写入文件
package com.lyh.test.testeasyexcel; import com.alibaba.excel.EasyExcel; import com.lyh.test.testeasyexcel.entity.User; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.ArrayList; import java.util.List; @SpringBootTest class TestEasyexcelApplicationTests { @Test void testWrite() { // 文件保存的位置 String fileName = "G:/test/test.xlsx"; EasyExcel.write(fileName, User.class).sheet("用户表").doWrite(list()); } // 简单造写数据,用于测试 public List<User> list() { List<User> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { User user = new User(); user.setUserName("tom" + i); user.setAge((int)(Math.random() * 20)); user.setEmail(user.getUserName() + "@163.com"); list.add(user); } return list; } }
(5)执行结果
3、SpringBoot 快速整合 EasyExcel(实现读操作)
基本与 写操作 类似,但是需要定义一个监听器,用于监听操作。
(1)创建项目、引入依赖、编写实体类(与写操作相同,此处省略)
(2)编写监听器,监听 excel 读取操作。
此监听器不交给 Spring 管理,所以相关注入(比如 @Autowired)不会生效。
若想使用 service、dao 等相关类,可以通过 构造方法将其引入。
package com.lyh.test.testeasyexcel.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.lyh.test.testeasyexcel.entity.User; import java.util.Map; /** * 定义一个数据监听器,继承 AnalysisEventListener 抽象类。 * 该监听器不交给 Spring 管理,所以如果需要使用 service、dao 相关的类时,需要通过构造方法引入。 */ public class DataListener extends AnalysisEventListener<User> { // 一行行读取表格内容 @Override public void invoke(User user, AnalysisContext analysisContext) { System.out.println("===============" + user); } // 读取表头内容 @Override public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) { System.out.println("======表头内容========" + headMap); } // 读取完成后的操作 @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { System.out.println("========读取完成========"); } }
(3)编写测试方法,读取文件
package com.lyh.test.testeasyexcel; import com.alibaba.excel.EasyExcel; import com.lyh.test.testeasyexcel.entity.User; import com.lyh.test.testeasyexcel.excel.DataListener; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class TestEasyexcelApplicationTests { @Test void testRead() { // 读取文件的位置 String fileName = "G:/test/test.xlsx"; EasyExcel.read(fileName, User.class, new DataListener()).sheet().doRead(); } }
此处仅做个简单了解,详细使用参考官方文档进行更详细的操作。
【官方文档地址:】 https://alibaba-easyexcel.github.io/index.html https://www.yuque.com/easyexcel
原文链接:https://www.cnblogs.com/l-y-h/p/12918575.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JDK安装与配置环境变量
- Linux简单命令的学习 2020-06-10
- 因为命名被diss无数次。简单聊聊编程最头疼的事情之一:命名 2020-06-10
- 今天来介绍java 各版本的新特性,一篇文章让你了解 2020-06-10
- 「starter推荐」简单高效Excel 导出工具 2020-06-08
- Mybaties简单实例测试及注意问题 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash