#java #excel #apache-poi
#java #excel #apache-poi
Вопрос:
Как я могу заставить пользователя выбрать только одно из значений в выпадающем списке и не вводить его собственное значение на листе Excel. Я использую библиотеку Java Apache-POI
Ответ №1:
Если вы используете HSSFWorkbook, используйте приведенное ниже
DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(new String[]{"ABC"});
DataValidation dataValidation = new HSSFDataValidation(programList, dvConstraint);
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
dataValidation.setShowPromptBox(true);
targetSheet.addValidationData(dataValidation);
Для XSSFWorkbook используйте, как показано ниже
DataValidationHelper validationHelper=new XSSFDataValidationHelper(targetSheet);
DataValidationConstraint constraint =validationHelper.createExplicitListConstraint(new String[]{"ABC"});
DataValidation dataValidation = validationHelper.createValidation(constraint, programList);
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setShowErrorBox(true);
dataValidation.setShowPromptBox(true);
targetSheet.addValidationData(dataValidation);
Комментарии:
1. Хотя вышеупомянутое решение работает как шарм, оно допускает любое значение, когда мы их вставляем. Есть идеи, как это преодолеть?
2. Это ограничение самого Excel. Когда вы вставляете значения, вы фактически заменяете всю ячейку вместе с ее правилами проверки IIRC.