[]
您可以应用数据验证来限制和验证在工作表的单个单元格或一系列单元格中输入的数据。
一个单元格只能应用一个验证规则。一个单元格不能应用多个验证规则。
如果您尝试验证已经有验证规则的单元格,将引发异常。
如果要知道单元格区域是否已包含验证规则,可以使用 IRange 接口的方法。 如果一个区域中的所有单元格都具有应用于它们的相同验证规则,则可以使用IRange接口的方法进行检查。
下面是可以在GcExcel Java中实现的数据验证操作列表。
通过在工作表中应用整数验证,您可以验证数据并确保用户只在单元格或单元格区域中添加整数。
请参阅以下示例代码以添加整数验证。
// Add whole number validation
worksheet.getRange("D2:E5").getValidation().add(ValidationType.Whole, ValidationAlertStyle.Stop,
ValidationOperator.Between, 3, 8);
IValidation validation = worksheet.getRange("D2:E5").getValidation();
validation.setIgnoreBlank(true);
validation.setInputTitle("Tips");
validation.setInputMessage("Input a value between 3 and 8, please");
validation.setErrorTitle("Error");
validation.setErrorMessage("input value does not between 3 and 8");
validation.setShowInputMessage(true);
validation.setShowError(true);
通过在工作表中使用小数验证,您可以验证数据,并确保用户只在单元格或单元格区域中添加小数。
请参阅以下示例代码以添加小数验证。
// Add decimal validation
worksheet.getRange("C2:E4").getValidation().add(ValidationType.Decimal, ValidationAlertStyle.Stop,
ValidationOperator.Between, 111.5, 72.3);
也可以通过在工作表中应用列表验证来验证插入单元格或单元格区域的列表。
请参阅以下示例代码以添加列表验证。
worksheet.getRange("A1").setValue("aaa");
worksheet.getRange("A2").setValue("bbb");
worksheet.getRange("A3").setValue("ccc");
// Use cell reference.
worksheet.getRange("C2:E4").getValidation().add(ValidationType.List, ValidationAlertStyle.Stop,
ValidationOperator.Between, "=$a$1:$a$3", null);
// Or use string.
// this._worksheet.getRange("C2:E4").getValidation().add(ValidationType.List,ValidationAlertStyle.Stop,
// ValidationOperator.Between, "aaa, bbb, ccc",null);
IValidation validation = worksheet.getRange("C2:E4").getValidation();
validation.setInCellDropdown(true);
通过在工作表中应用日期验证,可以验证单元格或单元格区域中以日期格式输入的数据。
请参阅以下示例代码以添加日期验证。
worksheet.getRange("C2:E4").getValidation().add(ValidationType.Date, ValidationAlertStyle.Stop,
ValidationOperator.Between, new GregorianCalendar(2015, 11, 13), new GregorianCalendar(2015, 11, 18));
通过在工作表中应用时间验证,可以验证在单元格或单元格区域中输入的时间。
请参阅以下示例代码以添加时间验证。
Calendar time1 = new GregorianCalendar(1899, 11, 30, 13, 30, 0);
Calendar time2 = new GregorianCalendar(1899, 11, 30, 18, 30, 0);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm:ss");
worksheet.getRange("C2:E4").getValidation().add(ValidationType.Time, ValidationAlertStyle.Stop,
ValidationOperator.Between, simpleDateFormat.format(time1.getTime()),
simpleDateFormat.format(time2.getTime()));
通过在工作表中应用文本长度验证,可以验证在单元格或单元格区域中输入的文本长度。
请参阅以下示例代码以添加文本长度验证。
worksheet.getRange("C2:E4").getValidation().add(ValidationType.TextLength, ValidationAlertStyle.Stop,
ValidationOperator.Between, 2, 3);
您可以添加自定义验证规则,通过应用自定义验证来验证工作表中的数据。
请参阅以下示例代码以添加自定义验证。
worksheet.getRange("A2").setValue(1);
worksheet.getRange("A3").setValue(2);
worksheet.getRange("C2").setValue(1);
// While using custom validation, validationOperator and formula2 parameters will be ignored even if you have provided.
worksheet.getRange("A2:A3").getValidation().add(ValidationType.Custom, ValidationAlertStyle.Information,
ValidationOperator.Between, "=C2", null);