废话不多说 直接上代码:

public static void exportCleanPlan(HttpServletResponse response, List<CleanPlanRequest> list, CleanPlanRequest request, List<String> dicList, Set<String> set) {if (CollectionUtil.isEmpty(list)) {list = requestList();}try (ExcelWriter writer = ExcelUtil.getWriter()) {//重写Sheetwriter.renameSheet("导入数据");// 表头处理List<String> rowHead = CollUtil.newLinkedList("网格组", "日期", "道路名称", "开始时间", "结束时间","清洗方式", "清洗人员", "清洗人员手机号", "补位人员", "补位人员手机号", "清洗车辆", "替班车辆");List<List<Object>> rows = new LinkedList<>();//表头写入第一行writer.writeHeadRow(CollUtil.newLinkedList("清洗计划"));//writer.merge(rowHead.size() - 1, false);writer.merge(0, 0, 0, rowHead.size() - 1, "清洗计划", false);//表头写入第二行writer.writeHeadRow(CollUtil.newLinkedList("项目:" + request.getItemName(), "开始日期:" + request.getStartDate(), "结束日期:" + request.getEndDate()));writer.merge(1, 1, 0, 1, "项目:" + request.getItemName(), false);writer.merge(1, 1, 2, 5, "开始日期:" + request.getStartDate(), false);writer.merge(1, 1, 6, 11, "结束日期:" + request.getEndDate(), false);//表头第三行writer.writeHeadRow(rowHead);//增加下拉列//writer.addSelect(2, 3, String.join(",", set));//writer.addSelect(new CellRangeAddressList(3, 7, 2, 2), String.join(",", set));//writer.addSelect(5, 3, String.join(",", dicList));writer.addSelect(new CellRangeAddressList(3, 7, 5, 5), String.join(",", dicList));if (list.size() > 0) {list.stream().forEach(item -> {LinkedList<Object> row = CollUtil.newLinkedList(item.getGridName(), item.getCleanDate(), item.getGeoName(), item.getCleanStartTime(), item.getCleanEndTime(), item.getDicName(), item.getListCleanPer(), item.getListPhone(), item.getListCleanPerCover(), item.getListPhoneAlt(), item.getCleanVehicle(), item.getCleanVehicle());rows.add(row);});}//内容writer.write(rows, true);//设置单元格为文本StyleSet styleSet = writer.getStyleSet();//CellStyle cellStyle = styleSet.getCellStyleForNumber();CellStyle cellStyle1 = styleSet.getCellStyleForDate();DataFormat format = writer.getWorkbook().createDataFormat();//cellStyle.setDataFormat(format.getFormat("@"));cellStyle1.setDataFormat(format.getFormat("@"));writer.setStyleSet(styleSet);layout(writer, list);//创建第二个Sheetwriter.setSheet("Sheet2");//writer.setFreezePane(3);writer.write(set, true);//将Sheet2中的数据引用到Sheet1中的下拉框Workbook workbook = writer.getWorkbook();Name namedCell = workbook.createName();namedCell.setNameName("Sheet2");namedCell.setRefersToFormula("Sheet2!$A$1:$A$" + set.size());//加载数据,将名称为hidden的DVConstraint constraint = DVConstraint.createFormulaListConstraint("Sheet2");// 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列CellRangeAddressList addressList = new CellRangeAddressList(3, 100, 2, 2);HSSFDataValidation validation = new HSSFDataValidation(addressList, constraint);//隐藏Sheet2workbook.setSheetHidden(1, true);writer.getSheets().get(0).addValidationData(validation);response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setCharacterEncoding("UTF-8");// 弹出下载对话框的文件名,中文请自行编码response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(request.getItemName() + "清洗计划", "utf-8") + ".xlsx");ServletOutputStream out = response.getOutputStream();writer.flush(out);writer.close();IoUtil.close(out);} catch (Exception e) {log.error("清洗计划导出失败{}", e.getMessage());e.printStackTrace();}}

Hutool导出excel下拉框大于255问题解决相关推荐

  1. excel下拉框超过255后office打开报部分内容有问题

    导出Excel数据用的是EasyExcel插件,为了解决excel下拉框超过255无法正常显示问题,网上找了一大堆解决方案,都类似,wps都可以正常显示,但是office打开报部分内容有问题提示,踩了 ...

  2. EasyExcel在项目中的应用-在web中导出带下拉框和批注的excel文件

    前言 ​ 好长一段时间没有更新博客了,最近刚刚找到实习工作,接触了企业中的项目,在这段时间的实习过程中,终于知道了企业级项目的体量和业务难度跟之前的小项目是完全不同的.10多天的适应期也逐渐让我找到了 ...

  3. Easyexcel导出带下拉框选项excel模板

    需求:导出的excel模板,表头字段动态生成.sheet页下拉框内容动态生成 解决思路:为了避免excel下拉框选项过多会导致内容不显示,将下拉框的内容都存储在另一个新建的固定的sheet页,再通过引 ...

  4. 若依导出excel时实现excel下拉框

    若依里面集成了Apache poi,可以直接自己重写,也可以调用若依的实现. 这里记录一下使用若依自带的属性实现excel下拉框选择,因为实际开发中用户自己填的值可能会不正确,这样不与系统的自带匹配, ...

  5. Java17 POI5.2.0 Excel 下拉框 数据校验

    Java 设置Excel 下拉框.自定义数据校验 一.工具类 1.ExcelUtil 2.Pom 二.生成文件 1.下拉框 2.数据校验 三.Excel 命令 1.获取活动单元格:=INDIRECT( ...

  6. 解决POI的SXSSFSheet 创建excel下拉框,下拉框内容过多时不显示的问题

    1. 复现 :使用POI导出带下拉框的excel文件,如果下拉框内容过多,下拉框变为了空 2. 解决思路 : 导出时创建隐藏的sheet,下拉框的取值从隐藏的sheet中获取,下拉框显示正常 3. 记 ...

  7. Easyexcel生成excel并通过自定义注解实现下拉框以及动态下拉框(将数据库中的数据显示在excel下拉框中)

    首先需要定义excel实体类 @Data @ColumnWidth(22) @HeadRowHeight(30) public class ExcelProductDTO {//动态下拉框,可以查询数 ...

  8. Excel下拉框设置多选

    Excel下拉框一般只能单选,但有时候需要多选,多选的方法如下: 以office 2016中的excel为例: 1.数据验证入口 2.设置数据 3.sheet页右击查看代码 4.复制下面代码进去: 5 ...

  9. php下拉多选框,excel下拉框多选打勾的设置方法

    excel下拉框多选打勾的设置方法 一.显示"开发工具"选项卡.打开Excel2010,点击左上方"文件"图标.点击"选项",弹出" ...

最新文章

  1. 【Interfacenavigation】用RecyclerView创建一个列表(4)
  2. MetaPhlAn 2:宏基因组进化分析
  3. 详细分解Transformer各部件总结
  4. 将指定excel的一列数据提取到另一个excel的指定列
  5. 一起来玩树莓派---树莓派3B+安装Ubuntu16.04系统
  6. 面向对象分析和设计的几个关键步骤_超市设计中不容忽视的小细节
  7. 工控c语言培训,[转载]最完整的工控培训、PLC培训教程大全
  8. oppor829t如何刷机_科普OPPO R1 R829T的线刷教程及最简单的三星手机刷机教程
  9. python求两数最小公倍数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...
  10. 装机必备的浏览器推荐,干净好用,选这4款不会出错
  11. android 汉字 转 拼音首字母大写,传入汉字字符串, 返回大写拼音首字母
  12. 该信谁?跳槽究竟是涨工资还是毁一生
  13. 保付代理和供应链金融业务大纲
  14. 数据库如何删除服务器文件,SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)...
  15. ICCV 2021 | 2D和3D通用!港大提出PCRL:新医疗影像自监督SOTA!
  16. Arturia Sound Explorers Collection Belledonne现已上市
  17. python使用xpath爬取网页数据
  18. RNA与DNA曾是一体?生命起源论或被颠覆
  19. 致我那终将逝去的青春——二十年后再相会
  20. VMware出现配置文件 .vmx 是由VMware产品创建,但该产品与此版 VMware workstation 不兼容,因此无法使用--VMware版本不兼容问题

热门文章

  1. 1. 秒速5センチメートル[秒速五厘米]
  2. STM32 HAL库串口同时收发,接收卡死?
  3. Linux下查看服务器内存、CPU、GPU显卡使用情况
  4. SSRF 302跳转 gopher协议攻击redis写入ssh公钥,实现远程无密登录(学习总结)
  5. 大一c语言实践报告怎么写,c语言实践报告范文
  6. 中南大学c语言课程实践报告,c++课程实践报告范文2篇
  7. MSP430-GRACE 实战(三):定时器中断
  8. 计算机控制在数字化播控中心的应用
  9. 在c语言中卖水果的程序,案例 | 卖生鲜水果的小程序怎么做?这个生鲜小程序做到了60天销售额超2...
  10. 【源码】基于Simulink的混合动力汽车模型