Java 如何使用Apache POI在excel文件中添加数据验证?
我正在使用ApachePOI创建一个包含下拉列表的excel文件。但是,下拉列表仍然可以编辑,用户可以键入值。我在excel中看到,当用户输入不在列表中的值时,我可以显示一条错误消息。下面是我设置约束的代码部分Java 如何使用Apache POI在excel文件中添加数据验证?,java,excel,apache,Java,Excel,Apache,我正在使用ApachePOI创建一个包含下拉列表的excel文件。但是,下拉列表仍然可以编辑,用户可以键入值。我在excel中看到,当用户输入不在列表中的值时,我可以显示一条错误消息。下面是我设置约束的代码部分 // Add dropdown for department column validationHelper = new XSSFDataValidationHelper(sheet); CellRangeAddressList addressList = new Cel
// Add dropdown for department column
validationHelper = new XSSFDataValidationHelper(sheet);
CellRangeAddressList addressList = new CellRangeAddressList(6, 10006, 2, 2);
// DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(departmentList);
constraint = validationHelper.createExplicitListConstraint(departmentList);
dataValidation = validationHelper.createValidation(constraint, addressList);
dataValidation.setSuppressDropDownArrow(true);
sheet.addValidationData(dataValidation);
我能够正确显示列表,但是它不会显示错误消息。有可能这样做吗?如果是,我怎么做?非常感谢您的帮助。谢谢。你错过了这一行
dataValidation.setShowErrorBox(true);
您可以使用自定义错误框
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.createErrorBox("Title", "Message");
所以这就是
var validationHelper = new XSSFDataValidationHelper(sheet);
var listConstraint = validationHelper.createExplicitListConstraint(departmentList);
var range = new CellRangeAddressList(6, 10006, 2, 2);
var dataValidation = validationHelper.createValidation(listConstraint, range);
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.createErrorBox("Title", "Message");
dataValidation.setShowErrorBox(true);
sheet.addValidationData(dataValidation);
你没听懂
dataValidation.setShowErrorBox(true);
您可以使用自定义错误框
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.createErrorBox("Title", "Message");
所以这就是
var validationHelper = new XSSFDataValidationHelper(sheet);
var listConstraint = validationHelper.createExplicitListConstraint(departmentList);
var range = new CellRangeAddressList(6, 10006, 2, 2);
var dataValidation = validationHelper.createValidation(listConstraint, range);
dataValidation.setSuppressDropDownArrow(true);
dataValidation.setErrorStyle(DataValidation.ErrorStyle.STOP);
dataValidation.createErrorBox("Title", "Message");
dataValidation.setShowErrorBox(true);
sheet.addValidationData(dataValidation);