若依框架实现Excel动态下拉(查库)

1.展示界面

2.原理

通过Java反射,获取需要导出的指定类,从类中获取需要数据源的指定字段(即下拉框应该在哪个字段上),

再通过hutool工具包。里面有个方法可以为注解里面的元数据设置指定的值。

2.1 Hutool工具包

java 复制代码
	 	<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-core</artifactId>
            <version>5.8.11</version>
        </dependency>

3.代码实现

在ExcelUtil里面

java 复制代码
 /**
     * 动态设置下拉框的值
     * @param adjustClass 修改指定类(需要在导出Excel类里面的指定类)
     * @param combos 传入Combo的值 (下拉框的值,从数据库中查询)
     * @param fieldName 指定传入类的字段上面值 (需要下拉框的字段)
     */
    public void setFiledCombo(Class<T> adjustClass, String[] combos, String fieldName){
        // 获取类的对象
        Field[] declaredFields = adjustClass.getDeclaredFields();
        for (int i = 0; i < declaredFields.length; i++) {
            Field declaredField = declaredFields[i];
            declaredField.setAccessible(true);
            if (declaredField.getAnnotation(Excel.class) == null) continue;
            if (declaredField.getName().equals(fieldName)) 
            // 给指定字段赋值
            AnnotationUtil.setValue(declaredField.getAnnotation(Excel.class),"combo",combos);
        }
    }

4.如何使用

java 复制代码
 		// 项目名(库中拿)
        List<String> projectName = Service.getProjectName();
        // 调整项
        List<String> costCollectType = Service2.getCostCollectType();
        ExcelUtil<自己的指定类> util = new ExcelUtil<>(自己的指定类.class);
        // 设置字段调整项目名称
        util.setFiledCombo(自己的指定类.class, projectName.toArray(new String[0]),"下拉框的字段名");
        // 设置字段调整项目 
        util.setFiledCombo(自己的指定类.class, costCollectType.toArray(new String[0]),"下拉框的字段名2");
        // 导出
        util.importTemplateExcel(response,"导出表的名字");

5.总结

通过Java的类反射和Hutool工具包完成了对指定字段上的注解的元数据进行修改。如果有错误,麻烦指出,小弟不才,望跟佬学习。

相关推荐
文人sec11 小时前
玩转excel数据透视表和图表
excel
leihefeng15 小时前
PX06-对比两个 Excel 文件的差异:从逐单元格到生产级实现
python·excel
我的愿望是成为富婆20 小时前
HR数字化校招技术栈拆解:SQL、Excel、Power BI和AI工具在2026届JD中的真实权重
人工智能·sql·excel
泡海椒20 小时前
JQuick-Excel 项目定位与适用场景:声明式 Java Excel 的边界
java·开发语言·excel
96245620 小时前
从 Excel 营业流水到可验证测试订单:测试数据导入工具工程复盘
excel
用户0332126663671 天前
Python 实现 Excel 转 XML:快速上手
python·excel
asdzx671 天前
Excel 水印方案对比:页眉图片 vs 背景图片(附 C# 实现)
c#·excel
Data-Miner2 天前
怎么用AI给Excel去重?先核对这7条再下手,别让好数据被删错:数以轻舟方案解析
人工智能·excel
Data-Miner2 天前
做表格数据分析的AI工具怎么选?先对一下这三个真实需求,再看哪些真能落地
人工智能·数据分析·excel
尤鸟倦8 天前
OneNote table复制到Excel遇到的各种问题
excel