Spring boot hutool poi 添加列的下拉选择列表

@PostMapping("/downloadOwnerAndHouseTemplate")
    public void downloadOwnerAndHouseTemplate(HttpServletResponse response) throws Exception {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        String communityId = loginUser.getSysUser().getCommunityId();

        if(StringUtils.isBlank(communityId)){
            throw new ServiceException("用户未绑定小区,请重新登录重试");
        }

        List<String> allUnitName=new ArrayList<>();
        List<BBuildingUnit> list = bBuildingUnitService.lambdaQuery().eq(BBuildingUnit::getCommunityId, communityId)
                .eq(BBuildingUnit::getPid, 0).list();
        for(BBuildingUnit unit:list){
            List<BBuildingUnit> list1 = bBuildingUnitService.lambdaQuery()
                    .eq(BBuildingUnit::getPid, unit.getId()).list();
            List<String> collect = list1.stream().map(u -> u.getName()).collect(Collectors.toList());
            allUnitName.addAll(collect);
        }

        String[] strings = allUnitName.stream().toArray(String[]::new);

        //导出
        ClassPathResource resource = new ClassPathResource("excelTemplate/ownerAndHouseTemplate.xlsx");
        ExcelReader reader = cn.hutool.poi.excel.ExcelUtil.getReader(resource.getStream());
        Sheet rows = reader.getSheets().get(0);

        //this.setDropDownBox((XSSFSheet) rows,new String[]{"参数1", "参数2", "参数3"},2,99999999,1,7);

        BigExcelWriter bigExcelWriter = new BigExcelWriter(rows);

        //添加下拉框,其中9999不能太大,太大也会导致下拉框出不来
        CellRangeAddressList addressList = new CellRangeAddressList(1, 9999, 4, 4);
        bigExcelWriter.addSelect(addressList,strings);

        // 一次性写出内容,使用默认样式,强制输出标题
        //bigExcelWriter.write(list2);
        //response为HttpServletResponse对象
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
        response.setHeader("Content-Disposition","attachment;filename=file.xlsx");
        ServletOutputStream out=response.getOutputStream();
        // 终止后删除临时文件
        //file.deleteOnExit();
        bigExcelWriter.flush(out, true);
        //此处记得关闭输出Servlet流
        IoUtil.close(out);
    }

最近更新

  1. C++惯用法: 通过std::decltype来SFINAE掉表达式

    2023-12-26 18:02:01       0 阅读
  2. HTTP 范围Range请求

    2023-12-26 18:02:01       0 阅读
  3. React 开发报错整理

    2023-12-26 18:02:01       0 阅读
  4. 微软 Edge 浏览器全解析

    2023-12-26 18:02:01       1 阅读
  5. 静态搜索iOS动态链接函数的调用位置

    2023-12-26 18:02:01       1 阅读

热门阅读

  1. PyQt5实现学生管理系统第三天(下)

    2023-12-26 18:02:01       45 阅读
  2. new Promise(resolve => setTimeout(resolve, 5000))

    2023-12-26 18:02:01       36 阅读
  3. kafka发送大消息

    2023-12-26 18:02:01       43 阅读
  4. 自定义删除无依赖文件的webpack插件

    2023-12-26 18:02:01       37 阅读
  5. js 学习

    2023-12-26 18:02:01       27 阅读
  6. ebpf基础篇(一) -------- hello ebpf

    2023-12-26 18:02:01       38 阅读
  7. 服务器的出口IP地址查询

    2023-12-26 18:02:01       33 阅读
  8. LeetCode 75| 前缀和

    2023-12-26 18:02:01       41 阅读