Apache POI - 文本长度限制为 8 或 10

Apache POI - Constraint on text length to be 8 OR 10

我想将以下约束添加到列中:

  1. 文本长度应为 8 或 10

  2. 所有数字都应该是数字,但列的类型是字符串

你觉得可能吗?

这里我将列设置为字符串

DataFormat fmt = wb.createDataFormat();
CellStyle textStyle = wb.createCellStyle();
textStyle.setDataFormat(fmt.getFormat("@"));
sheet.setDefaultColumnStyle(1, textStyle);

然后我添加了以下约束

XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createTextLengthConstraint(ComparisonOperator.EQUAL, "8", null);
CellRangeAddressList addressList = new CellRangeAddressList(-1, -1, 1, 1);
XSSFDataValidation validation = (XSSFDataValidation)dvHelper.createValidation(dvConstraint, addressList);
validation.setShowErrorBox(true);
sheet.addValidationData(validation);

但不起作用,我不知道如何添加等于 8 或 10 的约束,也不知道数字应该是数字。

非常感谢

我是这样做的,虽然不是我想要的,但是可以接受:

dvConstraint = (XSSFDataValidationConstraint) dvHelper.createNumericConstraint(ValidationType.TEXT_LENGTH, OperatorType.BETWEEN, "8", "10");
addressList = new CellRangeAddressList(-1, -1, 1, 1);
validation = (XSSFDataValidation)dvHelper.createValidation(dvConstraint, addressList);
validation.setShowErrorBox(true);
sheet2.addValidationData(validation);