当前位置:实例文章 » JAVA Web实例» [文章]SpringBoot中java操作excel【EasyExcel】

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

其他信息

其他资源

Top