Java使用easyExcel导出excel数据案例
发布时间:2022-02-21 19:39:27
标签:Java,easyExcel,导出,excel
easyExcel简介:
Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。
easyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。
easyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理
easyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
1.导入依赖【poi不能低于3.17,不然可能会报错】
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>
2.控制层
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>
3.导出模型
package com.iflytek.edu.hnezxjgl.model;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
import lombok.Data;
@Data
public class ExportModel extends BaseRowModel{
/**
* 账号
*/
@ExcelProperty(value = {"账号"}, index = 0)
private String platformNum;
/**
* 姓名
*/
@ExcelProperty(value = {"姓名"}, index = 1)
private String name;
/**
* 身份证号
*/
@ExcelProperty(value = {"身份证号"}, index = 2)
private String idCardNum;
/**
* 性别
*/
@ExcelProperty(value = {"性别"}, index = 3)
private String sexName;
/**
* 年级
*/
@ExcelProperty(value = {"年级"}, index = 4)
private String gradeName;
/**
* 班级
*/
@ExcelProperty(value = {"班级"}, index = 5)
private String className;
/**
* 学费缴费状态名称
*/
@ExcelProperty(value = "学费缴费状态名称",index = 6)
private String studyFeeStatusName;
/**
* 书本费缴费状态名称
*/
@ExcelProperty(value = "书本费缴费状态名称",index = 7)
private String bookFeeStatusName;
}
4.几万条数据实现秒导
来源:https://blog.csdn.net/qq_40974235/article/details/109093227


猜你喜欢
- 规则1(无继承情况下):对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、
- 发现问题最近在项目中刚刚修改一个功能,代码正准备验证,启动Idea的debug模式,运行项目,发现启动失败,查看日志发现定时任务被重复执行,
- 详解Android Webview加载网页时发送HTTP头信息当你点击一个超链接进行跳转时,WebView会自动将当前地址作为Referer
- 目录概述代码实现代码地址概述多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因
- 这篇文章主要介绍了Java编码摘要算法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参
- resultType 与 parameterType 的基本使用的区别1、使用 resultType:主要针对于从数据库中提取相应的数据出来
- spring boot是个好东西,可以不用容器直接在main方法中启动,而且无需配置文件,方便快速搭建环境。可是当我们要同时启动2个spri
- 前言最近在学习安卓开发的时候遇到了一个问题,使用Android Studio在为Button设置背景颜色的时候发现设置好后却在运行 * 上失
- 生成TAGlogt+Tab键:private static final String TAG = "Extract";生
- 1.wait()方法和sleep()方法:wait()方法在等待中释放锁;sleep()在等待的时候不会释放锁,抱着锁睡眠。2.notify
- ArrayList和Vector的区别相同点:1、ArrayList和Vector都是继承了相同的父类和实现了相同的接口2、底层
- 日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z'
- 引言前面在学习协程启动方式的时候在launch的源码中有一个返回值是Job,async的返回Deferred也是实现了Job,那么而也就是说
- 流是字节序列的抽象概念。文件是数据的静态存储形式,而流是指数据传输时的形态。流类分为两个大类:节点流类和过滤流类(也叫处理流类)。程序用于直
- 数据表及数据准备:create table Member(MemberId int primary key identity(1,1),Me
- Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。第一步:pom.xml添加maven依赖<!-- https
- 基于这段时间折腾redis遇到了各种问题,想着整理一下。本文主要介绍基于Spring+Mybatis以注解的形式整合Redis。废话少说,进
- MSMQ (Microsoft消息队列)是Windows中默认可用的消息队列。作为跨计算机系统发送和接收消息的可靠方法,MSMQ提供了一个可
- Android 调用百度地图API一、到 百度地图开发平台下载SDKhttp://lbsyun.baidu.com/index.php?ti
- 本文实例讲述了Android使用httpPost向服务器发送请求的方法。分享给大家供大家参考,具体如下:import java.util.L