[英]Changing Cell Value upon changing other cell value in excel [Data validation through Apache POI]
我正在编写一个Java类,用于创建带有一些数据验证的Excel数据。 我有一列显示带有一些值的下拉列表。 更改下拉值时,应更改该行其他列的单元格值。 例如,我有2列事件名称和事件ID。 “事件名称”列是显示事件名称的下拉数据。 更改事件名称时,应更改相应事件名称的eventId。
以下是我为制作下拉事件名称所做的代码:
String[] data = new String[] {"Event 1", "Event 2", "Event 3","Event 4" };
CellRangeAddressList addressList = new CellRangeAddressList(2,dataLength , 7, 7);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dVHelper
.createExplicitListConstraint(data);
XSSFDataValidation validation = (XSSFDataValidation) dVHelper
.createValidation(dvConstraint, addressList);
validation.setShowErrorBox(true);
sheet.addValidationData(validation);
我有一个事件名称和事件ID的映射。
您必须使用IF ... ELSE语句在另一列上设置数据验证。 您可以使用DataValidationHelper的createFormulaListConstraint方法。 PFB示例代码:
CellRangeAddressList addressList = new CellRangeAddressList(2,dataLength , 7, 7);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dVHelper
.createFormulaListConstraint("=IF(K3=\"1\",\"2\")");
XSSFDataValidation validation = (XSSFDataValidation) dVHelper
.createValidation(dvConstraint, addressList);
validation.setShowErrorBox(true);
sheet.addValidationData(validation);
它的工作原理是:如果该值为1,则另一列中的新值将设置为2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.