EasyExcel介绍
https://github.com/alibaba/easyexcel
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/40f6b5916eef4e008ddb2e889ef195f3.png)
示例
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5b349f4359ca4862ad5c79641218619d.png)
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.studio</groupId>
<artifactId>TestEasyExcel</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>4.0.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
User.java
package com.studio.pojo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@HeadRowHeight(value = 25)
@ContentRowHeight(value = 25)
@ColumnWidth(value = 30)
public class User implements Serializable {
@ExcelProperty(value = {"用户基本信息", "用户名"}, index = 1)
private String userName;
@ExcelProperty(value = {"用户基本信息", "年龄"}, index = 2)
private Integer age;
@ExcelProperty(value = {"用户基本信息", "地址"}, index = 4)
private String address;
@ExcelProperty(value = {"用户基本信息", "生日"}, index = 3)
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
private Date birthday;
@ExcelIgnore
@ExcelProperty(value = {"用户基本信息", "用户ID"}, index = 5)
private String userId;
}
Main.java
package com.studio;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.studio.pojo.User;
import java.util.ArrayList;
import java.util.Date;
public class Main {
public static void main(String[] args) {
readExcel();
}
public static void writeExcel(){
ArrayList<User> users = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setAddress("上海" + i);
user.setUserName("张三" + i);
user.setBirthday(new Date());
user.setAge(10 + i);
users.add(user);
}
EasyExcel.write("E:\\用户.xls", User.class).sheet("用户信息").doWrite(users);
}
public static void readExcel(){
ArrayList<User> users = new ArrayList<>();
EasyExcel.read("E:\\用户.xls", User.class, new AnalysisEventListener<User>() {
@Override
public void invoke(User user, AnalysisContext analysisContext) {
System.out.println("读取一行:" + user);
users.add(user);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("所有读取完成");
}
}).sheet().doRead();
System.out.println(users);
}
}
效果
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5fcd12d9bb2d4286a583c30922b9925e.png)