繁体   English   中英

在excel中更改其他单元格值时更改单元格值[通过Apache POI进行数据验证]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM