easyExcel
easyExcel
EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。
他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。
关于Easyexcel | Easy Excel (alibaba.com)
写入
导入依赖
1
2
3
4
5<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>在实体类的属性上添加注解,设置Excel表表头信息
1
2
3
4
5
6
7
8
9@Data
public class UserData {
@ExcelProperty("用户编号")
private int uid;
@ExcelProperty("用户名称")
private String username;
}写入内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public class testWrite {
public static void main(String[] args) {
// 文件路径
String fileName = "F:\\excel\\01.xlsx";
// 要写入的内容
ArrayList<UserData> list = new ArrayList<>();
for (int i = 0; i < 10; ++i) {
list.add(new UserData(i, "name" + i));
}
// 写入excel表
EasyExcel.write(fileName, UserData.class)
.sheet("用户信息") // excel表表名
.doWrite(list);
}
}
读出
实体类上要添加相对应的列号
1
2
3
4
5@ExcelProperty(value = "用户编号", index = 0)
private int uid;
@ExcelProperty(value = "用户名称", index = 1)
private String username;编写监听方法,当读取excel时会执行此监听方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19public class ExcelListener extends AnalysisEventListener<UserData> {
// 一行行读取excel内容,从第二行开始读取
@Override
public void invoke(UserData userData, AnalysisContext analysisContext) {
System.out.println(userData);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
// 读取表头信息
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println(headMap);
}
}读出内容
1
2
3
4
5
6
7
8
9public class TestRead {
public static void main(String[] args) {
String fileName = "F:\\excel\\01.xlsx";
EasyExcel.read(fileName,
UserData.class,
new ExcelListener()).sheet().doRead();
}
}
easyExcel
http://xwww12.github.io/2022/10/14/其他/easyExcel/