没有合适的资源?快使用搜索试试~ 我知道了~
首页阿里EasyExcel的操作.pdf
阿里EasyExcel的操作.pdf
需积分: 50 40 下载量 37 浏览量
更新于2023-05-11
评论 3
收藏 742KB PDF 举报
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便
资源详情
资源评论
资源推荐
阿里EasyExcel的操作
第一步:建立简单的maven项目,导入依赖
第二步:新建一个实体类进行操作
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.aaa;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/*
1
2
3
4
5
6
7
8
9
10
第三步:数据的写入
3.1 普通写入
*
* 创建用户模版
* */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
//表格的属性名称,index可以进行排序 从0开始排序
@ExcelProperty(value = "用户编号",index = 0)
private Integer userId;
@ExcelProperty(value = "姓名",index = 1)
private String userName;
@ExcelProperty(value = "性别",index = 3)
private String gender;
@ExcelProperty(value = "工资",index = 2)
private Double salary;
@ExcelProperty(value = "入职时间",index = 4)
private Date date;
}
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.test;
import com.aaa.User;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.junit.Test;
import java.util.*;
public class WriteTest {
/*
简单写方式一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
* */
@Test
public void test01(){
//创建一个Excel文档
String fileName="user1.xlsx";
//根据User模版构造数据
List<User> list=new ArrayList<>();
User user=new User(1,"小明","男",12000.12,new
Date());
User user1=new User(2,"小米","男",12000.12,new
Date());
User user2=new User(3,"小红","男",12000.12,new
Date());
User user3=new User(4,"小张","男",12000.12,new
Date());
list.add(user);
list.add(user1);
list.add(user2);
list.add(user3);
//向表格中写数据
EasyExcel.write(fileName,User.class).sheet("用户信
息模版").doWrite(list);
}
/*
* 简单方式写方式二
* */
@Test
public void test02(){
//创建一个Excel文档
String fileName="user2.xlsx";
//根据User模版构造数据
List<User> list=new ArrayList<>();
User user=new User(1,"小明","男",12000.12,new Date());
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
User user1=new User(2,"小米","男",12000.12,new
Date());
User user2=new User(3,"小红","男",12000.12,new
Date());
User user3=new User(4,"小张","男",12000.12,new
Date());
list.add(user);
list.add(user1);
list.add(user2);
list.add(user3);
ExcelWriter build = EasyExcel.write(fileName,
User.class).build();
//创建sheet对象
WriteSheet writeSheet = EasyExcel.writerSheet("用户信
息二").build();
build.write(list, writeSheet);
build.finish();
}
//排除某些字段
@Test
public void test03(){
String fileName="user3.xlsx";
//根据User模版构造数据
List<User> list=new ArrayList<>();
User user=new User(1,"小明","男",12000.12,new Date());
User user1=new User(2,"小米","男",12000.12,new
Date());
User user2=new User(3,"小红","男",12000.12,new
Date());
User user3=new User(4,"小张","男",12000.12,new
Date());
list.add(user);
list.add(user1);
list.add(user2);
list.add(user3);
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
3.2 复杂头数据写入
//排除某些字段不写入
Set<String> set=new HashSet<>();
set.add("salary");
set.add("date");
EasyExcel.write(fileName,User.class).excludeColumnFiledNames
(set).sheet("用户信息三").doWrite(list);
}
/*
* 指定某些字段写入到Excel表格中
* */
@Test
public void test04(){
String fileName="user4.xlsx";
//根据User模版构造数据
List<User> list=new ArrayList<>();
User user=new User(1,"小明","男",12000.12,new Date());
User user1=new User(2,"小米","男",12000.12,new
Date());
User user2=new User(3,"小红","男",12000.12,new
Date());
User user3=new User(4,"小张","男",12000.12,new
Date());
list.add(user);
list.add(user1);
list.add(user2);
list.add(user3);
//指定写入哪些字段到Excel表格中
Set<String> set=new HashSet<>();
set.add("salary");
set.add("date");
EasyExcel.write(fileName,User.class).includeColumnFiledNames
(set).sheet("用户信息三").doWrite(list);
}
}
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
剩余27页未读,继续阅读
哀愁
- 粉丝: 10
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0