当前位置: 首页 > news >正文

java excel xlsx 增加数据验证

隐藏表下拉框

   // 创建隐藏工作表存储下拉框数据
            String hiddenSheetName = "HiddenSheet"+System.currentTimeMillis();
            Sheet hiddenSheet =  workbook.createSheet(hiddenSheetName);
            //设置隐藏sheet
            workbook.setSheetHidden(workbook.getSheetIndex(hiddenSheetName), true);
            for (int i = 0; i < dropdownList.size(); i++) {
                Row row = hiddenSheet.createRow(i);
                Cell cityCellHidden = row.createCell(0);
                cityCellHidden.setCellValue(dropdownList.get(i));
            }
            // 获取DataValidationHelper对象
            DataValidationHelper helper = mainSheet.getDataValidationHelper();
            // 定义数据验证的范围
            CellRangeAddressList addressList = new CellRangeAddressList(startRow,  65535, columnIndex, columnIndex);
            // 创建数据验证约束 公式可以写成"Sheet2!$A$1:$A$10"。
            DataValidationConstraint constraint = helper.createFormulaListConstraint(hiddenSheetName+"!$A$1:$A$"+dropdownList.size());
            //生成验证规则
            DataValidation validation = helper.createValidation(constraint, addressList);
            // 设置错误提示信息
            validation.setShowErrorBox(true);
            validation.setSuppressDropDownArrow(true);

下拉框

   DataValidationHelper helper = mainSheet.getDataValidationHelper();
            DataValidationConstraint constraint = helper.createExplicitListConstraint(
                    dropdownList.toArray(new String[0]));
            CellRangeAddressList addressList = new CellRangeAddressList(startRow, 65535, columnIndex, columnIndex);
            DataValidation validation = helper.createValidation(constraint, addressList);
            validation.setShowErrorBox(true);
            validation.setSuppressDropDownArrow(true);
            mainSheet.addValidationData(validation);

时间格式及范围验证

       // 创建数据验证助手
        DataValidationHelper helper = sheet.getDataValidationHelper();
        CellRangeAddressList dateAddressList = new CellRangeAddressList(firstRow, lastRow, columnIndex, columnIndex);
        // 获取 LocalDateTime 的最小值
        LocalDateTime minLocalDateTime = LocalDateTime.MIN;
        // 获取 LocalDateTime 的最大值
        LocalDateTime maxLocalDateTime = LocalDateTime.MAX;
        DataValidationConstraint dataValidationConstraint = helper.createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN,
                minLocalDateTime.format(DateTimeFormatter.ofPattern(dateFormat)),
                maxLocalDateTime.format(DateTimeFormatter.ofPattern(dateFormat)),
                dateFormat);
        DataValidation validation = helper.createValidation(dataValidationConstraint, dateAddressList);
        validation.setShowErrorBox(true);
        validation.setSuppressDropDownArrow(true);
        validation.setShowErrorBox(true);
        validation.createErrorBox("标题","内容");
        sheet.addValidationData(validation);

integer 验证

// 创建数据验证助手
        DataValidationHelper helper = sheet.getDataValidationHelper();
        CellRangeAddressList intAddressList = new CellRangeAddressList(firstRow, lastRow, columnIndex, columnIndex);
        // 获取 LocalDateTime 的最大值
        LocalDateTime maxLocalDateTime = LocalDateTime.MAX;
        DataValidationConstraint dataValidationConstraint = helper.createIntegerConstraint(DataValidationConstraint.OperatorType.BETWEEN,
                String.valueOf(Integer.MIN_VALUE),
                String.valueOf(Integer.MAX_VALUE));
        DataValidation validation = helper.createValidation(dataValidationConstraint, intAddressList);
        validation.setShowErrorBox(true);
        validation.setSuppressDropDownArrow(true);
        sheet.addValidationData(validation);

相关文章:

  • JavaWeb登录认证
  • Linux实操——在服务器上直接从百度网盘下载(/上传)文件
  • 【MySQL】InnoDB中的Buffer Pool
  • CNN:卷积网络中设计1×1夹在主要卷积核如3×3前后的作用
  • 基于专利合作地址匹配的数据构建区域协同矩阵
  • 记录一次解决springboot需要重新启动项目才能在前端界面展示静态资源的问题--------使用热部署解决
  • java23种设计模式-责任链模式
  • Java全流程供应链系统开源方案:前端后端分离
  • 免实名服务器新选择:AWS海外服务器三大核心优势解析——以aliyun国际版为对比
  • 2025系统架构师(一考就过):案例之四:架构复用、架构评估、特定架构(DSSA)、架构开发方法(ABSD)
  • 力扣-动态规划-518 零钱兑换Ⅱ
  • 笔记一:字符函数和字符串函数
  • gitlab初次登录为什么登不上去
  • 迈向更好的动态图学习:新架构和统一库阅读笔记
  • 获取 ubuntu 系统相关信息
  • C++效率掌握之STL库:string函数全解
  • 由 Mybatis 源码畅谈软件设计(三):简单查询 SQL 执行流程
  • ESP32移植Openharmony外设篇(9)NB-IOT
  • AI岗位面试指南:高频文档问题解析与应答策略
  • 【Java项目】基于Spring Boot的校园博客系统
  • 网站建设中的咨询服务/推广普通话的宣传标语
  • 用哪个语言做网站比较好/网站做成app
  • 企业网站建设哪家好/2021十大网络舆情案例
  • 网站的域名每年都要续费/产品营销推广策略
  • 怎么在自己的网站上推广业务/成都网络营销品牌代理机构
  • 做茶评的网站/关键词排名代做