前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >若依导出设置动态excel下拉框

若依导出设置动态excel下拉框

原创
作者头像
在下是首席架构师
修改2024-08-19 17:16:36
2650
修改2024-08-19 17:16:36
举报
文章被收录于专栏:从入门到出门

若依导出模板,设置动态下拉框,根据数据库数据

代码语言:java
复制
public void downloadImportTemplate(HttpServletResponse response) throws Exception {
    
    List<String> nameList = new ArrayList<>();
	nameList.add("aaa");
    if(CollectionUtils.isEmpty(nameList)){
        throw new ServiceException("数据为空");
    }
    //动态设置一级下拉框
    ExcelUtil<ImportBO> util = new ExcelUtil<>(ImportBO.class);
    Class<ImportBO> clazz = util.clazz;
    Field field = clazz.getDeclaredField("tier1ChannelsName");
    //@Excel注解
    Excel excelInterface = field.getAnnotation(Excel.class);
    InvocationHandler h = Proxy.getInvocationHandler(excelInterface);
    // 获取 AnnotationInvocationHandler 的 memberValues 字段
    Field hField = h.getClass().getDeclaredField("memberValues");
    // 因为字段是 private 修饰,所以要打开权限
    hField.setAccessible(true);
    // 获取 memberValues
    Map<String, Object> memberValues = (Map<String, Object>) hField.get(h);
    String[] comboArray = new String[nameList.size()];
    for (int i = 0; i < nameList.size(); i++) {
        comboArray[i] = nameList.get(i);
    }
    memberValues.put("combo", comboArray);
    util.importTemplateExcel(response, "数据");
}



    /**
     * 名称集合
     */
    @Excel(name = "名称", combo={""})
    private String customName;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档