一. 概述

本文将用示例介绍如何用EasyExcel导出下拉框

二. 示例

2.1 编写样式处理类: TitleHandler

@Slf4j
public class TitleHandler implements SheetWriteHandler {/*** 下拉框值*/private Map<Integer,String[]> dropDownMap;/*** 多少行有下拉*/private final static Integer rowSize = 200;public TitleHandler(Map<Integer,String[]> dropDownMap) {this.dropDownMap = dropDownMap;}@Overridepublic void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {}@Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {Sheet sheet = writeSheetHolder.getSheet();DataValidationHelper helper = sheet.getDataValidationHelper();dropDownMap.forEach((celIndex, strings) -> {// 区间设置CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, rowSize, celIndex, celIndex);// 下拉内容DataValidationConstraint constraint = helper.createExplicitListConstraint(strings);DataValidation dataValidation = helper.createValidation(constraint, cellRangeAddressList);sheet.addValidationData(dataValidation);});}
}

2.2 编写工具类:

public class EasyExcelUtil {public static <T> void writeExcelWithModel(OutputStream outputStream, Class<T> clazz, Map<Integer,String[]> dropDownMap) throws IOException {EasyExcel.write(outputStream, clazz).registerWriteHandler(new TitleHandler(dropDownMap)).sheet("模板").doWrite(ListUtil.empty());}
}

2.3 测试

   @Overridepublic void importTemplate(HttpServletResponse response, String departId) throws IOException {// 输出流OutputStream os = response.getOutputStream();HashMap<Integer, String[]> dropDownMap = new HashMap<>();// 指定下拉框String[] deptName= entDepartmentMapper.selectDeptName(departId);dropDownMap.put(5,deptName);//部门String[] type = {"全部员工类型","在职员工","退休员工"};dropDownMap.put(3,type);EasyExcelUtil.writeExcelWithModel(os, EntStaffVo.class, dropDownMap);}

EasyExcel增加下拉选择框相关推荐

  1. 4.下拉选择框,弹出框。滚动条,(frame切换、多窗口切换,很重要,常用)等等,面试重要

    文章目录 target 下拉选择框 弹出框-- driver.switch_to.alert 滚动条 frame切换-- 重要 多窗口切换 截屏 验证码 cookie target 下拉选择框--se ...

  2. jquery.chosen.js下拉选择框美化插件项目实例

    由于之前使用的bootstrap-select插件是建立在bootstrap基础上的,实际使用到项目中的时候,与我们使用的ace-admin(基于bootstrap)存在样式冲突,导致下拉框的样式发生 ...

  3. Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)

    单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootst ...

  4. python select模块安装_python+selenium select下拉选择框定位处理方法

    一.前言 总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询: 二.直接定位(XPath) 使用Firebug找到需要定位到的元素,直接右键复制XPa ...

  5. 自定义组合控件:下拉选择框

    Spinner 自定义组合控件之下拉选择框 项目概述 下拉选择框主要是通过在EditText 下用PopupWindow 动态显示ListView 控件来实现的.下拉选择框可以方便用户的输入效率,以此 ...

  6. js下拉 selenium_selenium的下拉选择框

    今天总结下selenium的下拉选择框.我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框. 后者我们通常的处理方式与其他的元素类似,点击或使用J ...

  7. html下拉选择框箭头改为年,CSS自定义select下拉选择框的样式(不用其他标签模拟)...

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

  8. UI标签库专题十一:JEECG智能开发平台 DictSelect (数据字典下拉选择框)

     1. DictSelect (数据字典下拉选择框) 1.1. 参数 属性名 类型 描述 是否必须 默认值 typeGroupCode string 字典分组编码 是 null field str ...

  9. UI标签库专题七:JEECG智能开发平台 ComboBox (下拉选择框)

     1.  ComboBox (下拉选择框) 1.1. 参数 属性名 类型 描述 是否必须 默认值 name string 控件名称 是 null url string 远程数据访问 是 null ...

最新文章

  1. Android Eclipse之Git插件安装、配置、提交、修改、冲突、查看历史、覆盖。
  2. HTML的标签描述17
  3. MySQL主从失败 错误Got fatal error 1236
  4. 前端学习(3045):vue+element今日头条管理-创建页面组件
  5. android 怎么调用js项目_APP逆向神器之Frida【Android初级篇】
  6. 2021-09-1017. 电话号码的字母组合
  7. PX4日志读取并转化为.scv文件、MATLAB显示
  8. linux自启动配置文件,linux 开机自启动设置
  9. [转载]论原著中白飞飞和朱七七两大奇女子
  10. (一)、apache doris 介绍
  11. 第十二天-函数名 迭代器
  12. 无需编程,DIY自己智能小车的Android蓝牙遥控软件(一)
  13. 现实赢了袖手旁观他在冷眼看我们
  14. 费雪信息场增量建场实际实验
  15. asn1编码格式的解析过程
  16. 遇文件尾测试结束c语言,Fortran和C语言测试文件尾的方法
  17. FDC2214——电容传感器芯片的使用与配置(STM32控制)
  18. 芜湖~FILAgiao小设计:系统强提醒番茄时钟(简易电脑版)
  19. [7]能不能说一说浏览器缓存
  20. thisisunsafe神奇操作

热门文章

  1. java基础应用程序超市收银_超市收银程序(JAVA课程设计 2011)
  2. Maven:命令大全。
  3. matlab画柱形图
  4. 内插和数字上变频技术
  5. git拉取项目、提交代码简单教程
  6. Easyexcel导入导出多个sheet
  7. 虚拟机与主机ssh连接
  8. nodeJs处理json
  9. 【云计算与大数据技术】分布式数据库NoSQL中KV、列式、图、文档数据库的讲解(图文解释 超详细)
  10. 利用diskman来做数据恢复