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."); | |
} |