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

相关推荐
Non-existent9878 天前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
Channing Lewis8 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer8 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
chatexcel8 天前
ChatExcel Max使用教程:图片、PDF、网页与复杂Excel的一站式数据分析
数据分析·pdf·excel
cngkqy8 天前
excel从某一列中用match筛选匹配的数据
excel
qq_546937278 天前
Excel批量转PDF_Word_图片,支持自动合并报表,效率翻倍。
pdf·word·excel
ai_coder_ai8 天前
在自动化脚本中操作excel文件
运维·自动化·excel
三千花灯8 天前
【Playwright】 自动化测试之参数化登录(Excel/CSV 数据源)
人工智能·机器学习·excel
罗政8 天前
AI工作流实现Excel全自动化(支持SQL)-案例:医院门诊排班表
人工智能·自动化·excel
小妖6668 天前
excel 怎么在单元格内容自动加上一段文字不能用公式
excel·vba