Partager via


ExcelScript.DataValidationRule interface

Une règle de validation des données contient différents types de validation de données. Vous ne pouvez utiliser qu’un seul d’entre eux à la fois en fonction du ExcelScript.DataValidationType.

Propriétés

custom

Critères de validation des données personnalisés.

date

Critères de validation des données de date.

decimal

Critères de validation des données décimales.

list

Critères de validation des données de liste.

textLength

Critères de validation des données de longueur de texte.

time

Critères de validation des données de temps.

wholeNumber

Critères de validation des données de nombre entier.

Détails de la propriété

custom

Critères de validation des données personnalisés.

custom?: CustomDataValidation;

Valeur de propriété

Exemples

/**
 * This script adds data validation to a range.
 * The validation prevents duplicate entries within that range.
 */
function main(workbook: ExcelScript.Workbook) {
  // Get the range "B2:B20".
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("B2:B20");

  // Set data validation on the range to prevent duplicate, non-blank entries.
  const dataValidation = range.getDataValidation();
  dataValidation.setIgnoreBlanks(true);
  const duplicateRule : ExcelScript.CustomDataValidation = { 
    formula: "=COUNTIF($B$2:$B$20, B2)=1"
  };
  dataValidation.setRule({
    custom: duplicateRule
  });
}

date

Critères de validation des données de date.

date?: DateTimeDataValidation;

Valeur de propriété

decimal

Critères de validation des données décimales.

decimal?: BasicDataValidation;

Valeur de propriété

list

Critères de validation des données de liste.

list?: ListDataValidation;

Valeur de propriété

Exemples

/**
 * This script creates a dropdown selection list for a cell.
 * It uses the existing values of the selected range as the choices for the list.
 */
function main(workbook: ExcelScript.Workbook) {
    // Get the values for data validation.
    const selectedRange = workbook.getSelectedRange();
    const rangeValues = selectedRange.getValues();

    // Convert the values into a comma-delimited string.
    let dataValidationListString = "";
    rangeValues.forEach((rangeValueRow) => {
        rangeValueRow.forEach((value) => {
            dataValidationListString += value + ",";
        });
    });

    // Clear the old range.
    selectedRange.clear(ExcelScript.ClearApplyTo.contents);

    // Apply the data validation to the first cell in the selected range.
    const targetCell = selectedRange.getCell(0, 0);
    const dataValidation = targetCell.getDataValidation();

    // Set the content of the dropdown list.
    let validationCriteria : ExcelScript.ListDataValidation = {
        inCellDropDown: true,
        source: dataValidationListString
    };
    let validationRule: ExcelScript.DataValidationRule = {
        list: validationCriteria
    };
    dataValidation.setRule(validationRule);
}

textLength

Critères de validation des données de longueur de texte.

textLength?: BasicDataValidation;

Valeur de propriété

time

Critères de validation des données de temps.

time?: DateTimeDataValidation;

Valeur de propriété

wholeNumber

Critères de validation des données de nombre entier.

wholeNumber?: BasicDataValidation;

Valeur de propriété

Exemples

/**
 * This script creates a data validation rule for the range B1:B5.
 * All values in that range must be a positive number.
 * Attempts to enter other values are blocked and an error message appears.
 */
function main(workbook: ExcelScript.Workbook) {
  // Get the range B1:B5 in the active worksheet.
  const currentSheet = workbook.getActiveWorksheet();
  const positiveNumberOnlyCells = currentSheet.getRange("B1:B5");

  // Create a data validation rule to only allow positive numbers.
  const positiveNumberValidation: ExcelScript.BasicDataValidation = {
    formula1: "0",
    operator: ExcelScript.DataValidationOperator.greaterThan
  };
  const positiveNumberOnlyRule: ExcelScript.DataValidationRule = {
    wholeNumber: positiveNumberValidation
  };

  // Set the rule on the range.
  const rangeDataValidation = positiveNumberOnlyCells.getDataValidation();
  rangeDataValidation.setRule(positiveNumberOnlyRule);

  // Create an alert to appear when data other than positive numbers are entered.
  const positiveNumberOnlyAlert: ExcelScript.DataValidationErrorAlert = {
    message: "Positive numbers only",
    showAlert: true,
    style: ExcelScript.DataValidationAlertStyle.stop,
    title: "Invalid data"
  };
  rangeDataValidation.setErrorAlert(positiveNumberOnlyAlert);
}