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); Listlist = 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 文件 Listlist = 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