Apache-poi Restrict the user to select only the values of drop down list

apache-poi, excel, java

Solution

If you are using HSSFWorkbook use below

    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);

For XSSFWorkbook, use as below

        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);

Problem

How can I make the user select only one of the values in the drop down list and not enter his own value in the excel sheet. I am using Java library Apache-POI

Original source