若依框架实现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工具包完成了对指定字段上的注解的元数据进行修改。如果有错误,麻烦指出,小弟不才,望跟佬学习。

相关推荐
搬砖的小码农_Sky16 小时前
Excel批量复制全攻略:从单列单行到高级场景
excel·人机交互
专注VB编程开发20年16 小时前
淘宝上架销售技巧:Excel管理系统开发 / VBA / ERP / OA办公管理
java·数据库·excel
爱喝水的鱼丶18 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第五篇:SAP 报表多格式输出:Excel/PDF 批量导出功能实现
学习·性能优化·pdf·excel·sap·abap
tedcloud12318 小时前
codegraph部署教程:构建代码库语义分析环境
服务器·人工智能·word·excel
吾爱神器19 小时前
多个EXCEL工作表格合并数据列比对工具
excel·数据合并·数据对比·数据比对·excel数据合并·excel数据对比
daols881 天前
vxe-table 实现 Excel 风格向下复制填充(Ctrl + D 键)
javascript·vue.js·excel·vxe-table·vxe-ui
SilentSamsara1 天前
文件与数据处理:CSV/JSON/Excel/Parquet 高效操作与内存优化
开发语言·python·青少年编程·性能优化·json·excel
Maydaycxc1 天前
Excel/WPS 自动化实战:科学计数法、千张表格循环处理、打包交付的多工具对比
python·自动化·excel·wps·rpa
tedcloud1231 天前
DeepSeek-TUI部署教程:打造CLI AI助手环境
服务器·人工智能·word·excel·dreamweaver
Metaphor6922 天前
使用 Python 在 Excel 中查找并高亮显示
python·信息可视化·excel