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

相关推荐
paopaokaka_luck34 分钟前
基于SpringBoot+Vue的电影售票系统(协同过滤算法)
vue.js·spring boot·后端
陌殇殇4 小时前
SpringBoot整合SpringCache缓存
spring boot·redis·缓存
小林学习编程6 小时前
Springboot + vue + uni-app小程序web端全套家具商场
前端·vue.js·spring boot
ladymorgana7 小时前
【Spring boot】tomcat Jetty Undertow对比,以及应用场景
spring boot·tomcat·jetty
IT_10247 小时前
Spring Boot项目开发实战销售管理系统——系统设计!
大数据·spring boot·后端
Fireworkitte7 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
DCTANT8 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
ai小鬼头8 小时前
AIStarter最新版怎么卸载AI项目?一键删除操作指南(附路径设置技巧)
前端·后端·github
Touper.8 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
一只叫煤球的猫8 小时前
普通程序员,从开发到管理岗,为什么我越升职越痛苦?
前端·后端·全栈