Travailler avec des validations dans les feuilles de calcul

Modes de validation

Il existe trois modes de validation pris en charge par Aspose.Cells.GridDesktop comme suit :

  • Mode de Validation Requis
  • Mode de Validation Expressions Régulières
  • Mode de Validation Personnalisé

Mode de Validation Requis

Dans ce mode de validation, les utilisateurs sont limités à entrer des valeurs dans des cellules spécifiées. Une fois que la Validation Requise est appliquée sur une cellule de la feuille de calcul, il devient obligatoire pour l’utilisateur d’entrer une valeur dans cette cellule.

Mode de Validation des Expressions Régulières

Dans ce mode, des restrictions sont appliquées sur les cellules de la feuille de calcul pour que les utilisateurs soumettent des données dans un format spécifique. Le format des données est fourni sous forme d’une Expression Régulière.

Mode de Validation Personnalisée

Pour utiliser la Validation Personnalisée, il est obligatoire pour les développeurs de mettre en œuvre l’interface Aspose.Cells.GridDesktop.ICustomValidation. L’interface fournit une méthode Valider. Cette méthode renvoie vrai si les données sont valides, sinon elle renvoie faux.

Travailler avec les Validations dans Aspose.Cells.GridDesktop

Ajouter une Validation

Pour ajouter n’importe quel type de validation à une cellule de la feuille de calcul, veuillez suivre les étapes ci-dessous :

  • Ajoutez le contrôle Aspose.Cells.GridDesktop à votre Form
  • Accédez à n’importe quelle Worksheet souhaitée
  • Ajouter une validation souhaitée à la collection Validations de la Feuille de calcul pour spécifier quelle validation doit être appliquée sur quelle cellule.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
// Adding values to specific cells of the worksheet
sheet.Cells["a2"].Value = "Required";
sheet.Cells["a4"].Value = "100";
sheet.Cells["a6"].Value = "2006-07-21";
sheet.Cells["a8"].Value = "101.2";
// Adding Is Required Validation to a cell
sheet.Validations.Add("a2", true, "");
// Adding simple Regular Expression Validation to a cell
sheet.Validations.Add("a4", true, @"\d+");
// Adding complex Regular Expression Validation to a cell
sheet.Validations.Add("a6", true, @"\d{4}-\d{2}-\d{2}");
// Adding Custom Validation to a cell
sheet.Validations.Add("a8", new CustomValidation());

Implémentation de ICustomValidation

Dans l’extrait de code ci-dessus, nous avons ajouté une validation personnalisée dans la cellule A8 mais nous n’avons pas encore implémenté cette validation personnalisée. Comme nous l’avons expliqué au début de ce sujet, pour appliquer une validation personnalisée, nous devons mettre en œuvre l’interface ICustomValidation. Alors, essayons de créer une classe pour implémenter l’interface ICustomValidation.

Dans l’extrait de code ci-dessous, nous avons mis en œuvre une validation personnalisée pour effectuer les vérifications suivantes:

  • Vérifier si l’adresse de la cellule est exacte dans laquelle la validation est ajoutée
  • Vérifier si le type de données de la valeur de la cellule est double
  • Vérifier si la valeur de la cellule est supérieure à 100
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Implementing ICustomValidation interface
public class CustomValidation : Aspose.Cells.GridDesktop.ICustomValidation
{
// Implementing Validate method already defined in the interface
public bool Validate(Worksheet worksheet, int row, int col, object value)
{
// Checking the cell's address
if (row == 7 && col == 0)
{
//Checking the data type of cell's value
double d = 0;
try
{
d = (double)value;
}
catch
{
return false;
}
// Checking if the cell's value is greater than 100
if (d > 100)
return true;
}
return false;
}
}

Accès à la Validation

Une fois qu’une validation est ajoutée à une cellule spécifique de la feuille de calcul, il peut être nécessaire pour les développeurs d’accéder et de modifier les attributs d’une validation spécifique à l’exécution. Ainsi, Aspose.Cells.GridDesktop a rendu simple pour les développeurs d’accomplir cette tâche.

Pour accéder à une validation spécifique, veuillez suivre les étapes ci-dessous :

  • Accéder à une Feuille de calcul souhaitée
  • Accéder à une Validation spécifique dans la feuille de calcul en spécifiant le nom de la cellule sur laquelle la validation a été appliquée
  • Modifier les attributs de la Validation, si désiré
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
if (sheet.Validations.Count > 0)
{
// Accessing the Validation object applied on "a8" cell
Aspose.Cells.GridDesktop.Data.GridValidation validation = sheet.Validations[7, 0];
// Editing the attributes of Validation
validation.IsRequired = true;
validation.RegEx = "";
validation.CustomValidation = null;
MessageBox.Show("Validation has been edited after accessing it.");
}
else
{
MessageBox.Show("No validations found to access.");
}

Supprimer la validation

Pour supprimer une validation spécifique de la feuille de calcul, veuillez suivre les étapes ci-dessous :

  • Accéder à une Feuille de calcul souhaitée
  • Supprimer une validation spécifique de la feuille de calcul en spécifiant le nom de la cellule sur laquelle la validation a été appliquée
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing first worksheet of the Grid
Worksheet sheet = gridDesktop1.Worksheets[0];
if (sheet.Validations.Count > 0)
{
// Removing the Validation object applied on "a6" cell
sheet.Validations.RemoveAt(1);
MessageBox.Show("Validation has been removed.");
}
else
{
MessageBox.Show("No validations found to remove.");
}