SpringBoot中利用EasyExcel+aop实现一个通用Excel导出功能

一、结果展示

主要功能:可以根据前端传递的参数,导出指定列、指定行

1.1 案例一

  1. 前端页面
  2. 传递参数
json 复制代码
{
    "excelName": "导出用户信息1725738666946",
    "sheetName": "导出用户信息",
    "fieldList": [
        {
            "fieldName": "userId",
            "fieldDesc": "用户id"
        },
        {
            "fieldName": "age",
            "fieldDesc": "年龄"
        },
        {
            "fieldName": "address",
            "fieldDesc": "地址"
        }
    ]
}
  1. 导出的文件

1.2 案例二

  1. 前端页面

  2. 传递参数

json 复制代码
{
    "excelName": "导出用户信息1725739080367",
    "sheetName": "导出用户信息",
    "fieldList": [
        {
            "fieldName": "userId",
            "fieldDesc": "用户id"
        },
        {
            "fieldName": "address",
            "fieldDesc": "地址"
        },
        {
            "fieldName": "age",
            "fieldDesc": "年龄"
        },
        {
            "fieldName": "userName",
            "fieldDesc": "用户名"
        }
    ],
    "userIdList": [
        "1",
        "3",
        "5",
        "8",
        "9"
    ]
}
  1. 导出结果

二、代码实现

工具类代码结构

2.1 入参、出参

UserExportRequest

java 复制代码
public class UserExportRequest extends ExcelExportRequest {
    /**
     * 要导出的用户id列表,不传,则导出所有用户记录
     */
    private List<Integer> userIdList;

    public List<Integer> getUserIdList() {...}
    public void setUserIdList(List<Integer> userIdList) {...}
}

---继承自通用的ExcelExportRequest类---
public class ExcelExportRequest {
    /**
     * excel名称
     */
    private String excelName;

    /**
     * sheet的名称
     */
    private String sheetName;

    /**
     * 导出字段有序列表
     */
    private List<ExcelExportField> fieldList;

    public String getSheetName() {...}
    public void setSheetName(String sheetName) {...}
    public String getExcelName() {...}
    public void setExcelName(String excelName) {...}
    public List<ExcelExportField> getFieldList() {...}
    public void setFieldList(List<ExcelExportField> fieldList) {...}
}

ExcelExportResponse

java 复制代码
public class ExcelExportResponse {
    //导出的excel文件名称
    private String excelName;
    // sheet列表数据
    private List<ExcelSheet> sheetList;

    public String getExcelName() {...}
    public void setExcelName(String excelName) {...}
    public List<ExcelSheet> getSheetList() {...}
    public void setSheetList(List<ExcelSheet> sheetList) {...}
}

2.2 生成ExcelExportResponse的逻辑

2.3 aop通知

2.4 下载Excel

相关推荐
S***26751 分钟前
Spring Boot环境配置
java·spring boot·后端
6***83052 分钟前
什么是Spring Boot 应用开发?
java·spring boot·后端
n***786811 分钟前
SpringBoot详解
java·spring boot·后端
星释17 分钟前
Rust 练习册 96:Rectangles与几何计算
开发语言·后端·rust
JIngJaneIL19 分钟前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·毕设·农产品电商系统
切糕师学AI21 分钟前
Spring 是什么?
java·后端·spring
v***885623 分钟前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink
老神在在00124 分钟前
Mybatis01
后端·学习·spring·java-ee·mybatis
c***727425 分钟前
SpringBoot + vue 管理系统
vue.js·spring boot·后端
爱笑的源码基地25 分钟前
医院随访管理系统源码 患者随访管理系统源码 智能随访系统源码 出院随访系统源码,基于Java+Vue前后端分离架构
java·spring boot·源码·二次开发·源代码管理·随访系统·医院随访