poi.apache.org网站给出以下定义

公共静态DVConstraint createDateConstraint(int comparisonOperator,
java.lang.String expr1,
java.lang.String expr2,
java.lang.String dateFormat)

我想要一个示例,其中expr1和expr2是格式化的日期值。

最佳答案

我发现的关键是使用日期(年,月,日)功能。我还需要我的代码可用于除标题之外的整个列,因此单元格范围是1到excel一张工作表的最后一行。我不确定为什么但仅靠日期本身似乎不起作用,因为该公式会自动转换为在前面带有“ =”符号,这会混淆我认为的出色表现。

错误样式和消息也总是使人们了解自己在做什么错的好主意。

DataValidationHelper dataValidationHelper = sheet.getDataValidationHelper();
DataValidationConstraint constraint = dataValidationHelper.createDateConstraint(OperatorType.BETWEEN,
            "Date(1990, 1, 1)", "Date(9999, 12, 31)", "mm/dd/yyyy");
CellRangeAddressList addressList = new CellRangeAddressList(1, 1048575, 0, 0);
DataValidation validation = dataValidationHelper.createValidation(constraint, addressList);
validation.setErrorStyle(DataValidation.ErrorStyle.STOP);
validation.createErrorBox("Invalid date", "Please Insert Valid Date");
validation.setSuppressDropDownArrow(dropDownArrow);
sheet.addValidationData(validation);

10-07 20:14