目录
easyexcel
简介
Java
解析、生成 Excel
比较有名的框架有 Apache POI
,但存在一个严重的问题就是非常的耗内存,针对这个问题阿里出品了用来处理 Excel
的开源工具 easyexcel
GitHub
官网:https://github.com/alibaba/easyexcel
官方文档:https://alibaba-easyexcel.github.io/
EasyExcel
和 POI
的对比
- 相比于
POI
,EasyExcel
简化了开发量,能够用更少的代码实现更多的功能 - 相比于
POI
,EasyExcel
使用简单 - 相比于
POI
,EasyExcel
能够使用更少的内存占用
SpringBoot
整合 easyexcel
Maven
依赖
主要依赖如下,其他依赖自行依赖导入
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
数据库 SQL
脚本
CREATE TABLE `excel_user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`dept_id` int(11) NOT NULL COMMENT '部门ID',
`loginName` varchar(255) NOT NULL COMMENT '登录账号\r\n',
`phone` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL COMMENT '密码',
`status` int(255) NOT NULL COMMENT '帐号状态',
`createTime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updateTime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
UNIQUE KEY `index_ln` (`loginName`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
实体类
@Data
public class ExcelUser {
// 定义表头名称和位置,0代表第一列
@ExcelProperty(value = "编号", index = 0)
private Integer userId;
@ExcelProperty(value = "部门编号", index = 1)
private Integer deptId;
@ExcelProperty(value = "登录账号", index = 2)
private String loginname;
@ExcelProperty(value = "用户手机号", index = 3)
private String phone;
@ExcelProperty(value = "密码", index = 4)
private String password;
@ExcelProperty(value