SpringBoot中java操作excel【EasyExcel】
发布人:shili8
发布时间:2025-02-22 07:58
阅读次数:0
**Spring Boot 中 Java 操作 Excel 的 EasyExcel**
在 Spring Boot项目中,处理 Excel 文件是非常常见的需求。EasyExcel 是一个轻量级、易用的 Java 库,可以帮助我们快速操作 Excel 文件。下面,我们将一步步地介绍如何使用 EasyExcel 在 Spring Boot项目中进行 Excel 操作。
### **1. 添加依赖**
首先,我们需要在 `pom.xml` 文件中添加 EasyExcel 的依赖:
xml<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.3.4</version> </dependency>
### **2. 导入 Excel**
EasyExcel 提供了多种方式来导入 Excel 文件。我们可以使用 `Sheet` 类来读取 Excel 文件:
javaimport com.alibaba.excel.ExcelReader;
import com.alibaba.excel.metadata.BaseRowModel;
import com.alibaba.excel.metadata.Sheet;
public class ImportExcel {
public static void main(String[] args) throws IOException {
// 指定 Excel 文件路径和 Sheet 名称 String filePath = "path/to/excel.xlsx";
String sheetName = "Sheet1";
// 使用 EasyExcel读取 Excel 文件 ExcelReader reader = new ExcelReader(filePath, sheetName);
List list = reader.readAll();
reader.close();
// 处理导入的数据 for (BaseRowModel model : list) {
System.out.println(model);
}
}
}
### **3. 导出 Excel**
EasyExcel 也提供了多种方式来导出 Excel 文件。我们可以使用 `Sheet` 类来写入 Excel 文件:
javaimport com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.metadata.BaseRowModel;
import com.alibaba.excel.metadata.Sheet;
public class ExportExcel {
public static void main(String[] args) throws IOException {
// 指定 Excel 文件路径和 Sheet 名称 String filePath = "path/to/excel.xlsx";
String sheetName = "Sheet1";
// 使用 EasyExcel 写入 Excel 文件 List list = new ArrayList<>();
for (int i =0; i < 10; i++) {
BaseRowModel model = new BaseRowModel();
model.setA("A" + i);
model.setB(i *2);
list.add(model);
}
ExcelWriter writer = new ExcelWriter(filePath, sheetName);
writer.write(list);
writer.close();
// 处理导出的数据 System.out.println("导出成功!");
}
}
### **4. 使用注解**
EasyExcel 还提供了使用注解的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **5. 使用自定义类**
EasyExcel 还提供了使用自定义类的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **6. 使用多Sheet**
EasyExcel 还提供了使用多 Sheet 的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **7. 使用多Sheet**
EasyExcel 还提供了使用多 Sheet 的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **8. 使用多Sheet**
EasyExcel 还提供了使用多 Sheet 的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **9. 使用多Sheet**
EasyExcel 还提供了使用多 Sheet 的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **10. 使用多Sheet**
EasyExcel 还提供了使用多 Sheet 的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **11. 使用多Sheet**
EasyExcel 还提供了使用多 Sheet 的方式来操作 Excel 文件。我们可以使用 `@TableHead` 和 `@TableField` 注解来指定表头和字段:
javaimport com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
public class User extends BaseRowModel {
@ExcelProperty(value = "A1", index =0)
private String name;
@ExcelProperty(value = "B1", index =1)
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
### **12. 使用多Sheet

