EasyExcel 实现单元格数据下拉选

前言

easyExcel导出模板的时候,固定的某个列我们有固定的是选项值的时候,我们需要将excel的单元格做成下拉选的情况;满足实际的业务需求。

实现

1.表格下拉选封装类

public class CustomSheetWriteHandler implements SheetWriteHandler {@Overridepublic void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {}@Overridepublic void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {//定义一个map key是需要添加下拉框的列的index value是下拉框数据Map<Integer, String[]> mapDropDown = new HashMap<>(3);//设置单位身份 值写死String[] unitIdentity = {"职教集团成员单位","拟合作单位","合作单位"};//地区String[] area = {"国内","国外"};//等级下拉选String[] level = {"国家级示范校","国家级骨干校","省级示范校","省级骨干校","其他"};//年份下拉选String[] joinYear = {"1990年","1991年","1992年","1993年","1994年","1995年","1996年","1997年","1998年","1999年","2000年","2001年","2002年","2003年","2004年","2005年","2006年","2007年","2008年","2009年","2010年","2011年","2012年","2013年","2014年","2015年","2016年","2017年","2018年","2019年","2020年","2021年","2022年"};//下拉选在Excel中对应的列mapDropDown.put(0,unitIdentity);mapDropDown.put(1,joinYear);mapDropDown.put(4,area);mapDropDown.put(10,level);//获取工作簿Sheet sheet = writeSheetHolder.getSheet();///开始设置下拉框DataValidationHelper helper = sheet.getDataValidationHelper();//设置下拉框for (Map.Entry<Integer, String[]> entry : mapDropDown.entrySet()) {/*起始行、终止行、起始列、终止列  起始行为1即表示表头不设置**/CellRangeAddressList addressList = new CellRangeAddressList(1, 65535, entry.getKey(), entry.getKey());/*设置下拉框数据**/DataValidationConstraint constraint = helper.createExplicitListConstraint(entry.getValue());DataValidation dataValidation = helper.createValidation(constraint, addressList);sheet.addValidationData(dataValidation);}}
}

2.表格表头类

@Data
@ContentRowHeight(25)
@HeadRowHeight(25)
@ColumnWidth(50)
public class UnitExcelDownVoOne {@ExcelIgnoreprivate Integer unitType;@ExcelProperty(value = "单位身份", index = 0)private String unitIdentity;@ExcelProperty(value = "加入年份", index = 1)private String joinYears;@ExcelIgnoreprivate Integer joinYear;@ExcelProperty(value = "您想加入,成为集团成员吗?", index = 2)private String joinIdea;@ExcelProperty(value = "单位名称", index = 3)private String unitName;@ExcelProperty(value = "地区", index = 4)private String area;@ExcelProperty(value = "地区-省", index = 5)private String province;@ExcelProperty(value = "地区-市", index = 6)private String city;@ExcelProperty(value = "地区-县区", index = 7)private String county;@ExcelProperty(value = "统一社会信用代码", index = 8)private String code;@ExcelProperty(value = "学校标识码", index = 9)private String schoolCode;@ExcelProperty(value = "级别", index = 10)private String level;@ExcelProperty(value = "单位代表人姓名", index = 11)private String contact;@ExcelProperty(value = "单位代表人联系电话", index = 12)private String phone;@ExcelProperty(value = "单位代表人职务", index = 13)private String representPost;@ExcelProperty(value = "单位联系人姓名", index = 14)private String companyContactName;@ExcelProperty(value = "单位联系人电话", index = 15)private String companyContactPhone;@ExcelProperty(value = "单位联系人职务", index = 16)private String companyContactPost;@ExcelProperty(value = "单位联系人部门", index = 17)private String workUnit;
}

3. 导出方法

String fileName = URLEncoder.encode("XXX模板导出", "UTF-8");response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");EasyExcel.write(response.getOutputStream(), UnitExcelDownVoOne.class).sheet("中职院校").registerWriteHandler(new CustomSheetWriteHandler()).doWrite(null);

最后结果

EasyExcel 实现单元格数据下拉选相关推荐

  1. php利用表格敬将所选择的数据显示出来,单元格下拉筛选设置/Excel对筛选后的单元格进行下拉填充...

    EXCEL里怎样让一个单元格能有下拉菜单? 要设置下拉菜单的单元格(或格区)----数据---有效---"允许"中选择"序"---"来源"中 ...

  2. 单元格只能下拉框选_excel给单元格添加下拉菜单列表无需按键盘用鼠标选择即可...

    excel给单元格添加下拉菜单列表无需按键盘用鼠标选择即可 时间:2013-12-08   作者:snow   来源:互联网 为了方便快速的输入数据,通常情况下我们会给单元格添加一个下拉菜单,如此一来 ...

  3. 基于java + easyExcel实现模板填充生成动态模板并设置指定单元格为下拉框样式

    需求描述:java后端开发过程中,为了满足动态生成excel模板并设置指定单元格为下拉框,且下拉框的数据项来源为动态查询的需求,在基于easyExcel的情况下,使用模板填充的方式,完成该需求. 1. ...

  4. 如何让图片充满excel单元格_如何在Excel单元格建立下拉菜单

    对于一些常用的数据我们往往会希望能够尽量快速的输入,下拉菜单就是一个最简单的解决办法.那么如何实现下拉菜单呢?跟随以下步骤,建立属于自己的下拉菜单吧! 如何建立下拉菜单? 一.确定内容:在单元格中,输 ...

  5. layui表格单元格添加下拉选择功能

    layui表格单元格添加下拉选择功能 1.修改表头 2.更新数据 3.修改样式 代码如下: <style>/*表格单元格里显示下拉框,添加后样式不对,需要自己调整一下样式使得下拉框与单元格 ...

  6. PHPExcel设置单元格值下拉选择

    在PHP中,我们可以使用PHPExcel导出excel.而在平常的使用中,我们可以设置单元格的值使用下拉选择.本文介绍如何使用PHPExcel设置单元格值下拉选择. PHP导出Excel的准备工作,可 ...

  7. Excel怎样操作给单元格添加下拉选项?分享经验!如何给Excel单元格加入下拉列表?

    Excel作为一款电子表格软件,现已成为我们大家记录数据.处理数据中使用最为频繁的软件,我们大家在整理数据中为了简便快捷的使用,会想要在单元格中添加一个下拉菜单,这样会让我们的使用更加方便,那么下面小 ...

  8. ag-grid 单元格编辑-下拉框

    一.基本下拉框 效果如下: 选中后的值直接就是界面显示的值(也是代码中定义的值).效果如下: 二.有id 的下拉框 这个下拉框跟平常用的select 框类似,设置id和value,在界面选择的时候显示 ...

  9. LibreOffice/Calc:单元格设置下拉菜单

     造冰箱的大熊猫,本文适用于LibreOffice Calc 5.1.6.2 + Ubuntu 16.04@cnblogs 2019/1/2 LibreOffice是一个类似Microsoft Off ...

最新文章

  1. 径向基函数插值(3)二维数据的插值
  2. 食品行业ERP选型 需把握关键的20%
  3. php 腾讯云 文字识别_腾讯云安全为何成为企业首选?4大原因成为制胜王道
  4. 关于一些常见智柜问题的分析及解决办法
  5. N皇后问题12 · N-Queens
  6. 2018 疯狂微服务之死
  7. mysql8.0.15免安装教程_MySQL8.0.15安装教程(Windows)
  8. Android应用APP: 基于MobileNet和EfficientNet的图像分类模型_调试运行以及打包Tensorflow官方提供的Image classification demo
  9. mysql 给表填充数据库_mysql---为测试数据库填充大量数据
  10. 网络摄像头的地盘争夺战——四款僵尸软件的技术解析
  11. 多元统计分析基于r课后答案_智慧树多元统计分析及R语言建模课后答案
  12. 安全狗又拿下一场重保胜战 第22届投洽会顺利谢幕
  13. 《Redis视频教程》(p6)
  14. 二层交换机与三层交换机区别
  15. 宏电4g路由器流量卡怎么设置_宏电4g无线路由器设置_4g路由器怎么设置网口
  16. 无线测温传感器、无线测温装置在项目上的应用—安科瑞 孙斌
  17. android studio 魅族真机 flyme6 下logcat 打印自定义日志
  18. vue tsx render函数 transition动画不生效
  19. 软考是什么-有什么用-怎么报名-考试内容
  20. 达梦8,关于参数CTAB_SEL_WITH_CONS的验证

热门文章

  1. 数据库服务器文件路径,服务器数据库的文件路径
  2. 免费的JPEG 恢复软件 - 照片删除了怎么恢复?
  3. AIOT-物模型(产品模型、数据模板)
  4. 免费在线使用微软文字转语音工具(附详细转换步骤)
  5. 铁流:苹果为何不找IBM,而选择中国浪潮
  6. 中国离合器行业运行态势及产销需求预测报告2021-2027年
  7. 推荐一些前端小姐姐的公众号
  8. Cassandra,NoSQL中的兰博基尼
  9. AODV=DSR+DSDV
  10. 支付宝AR红包引出Python中的PIL小试