Com treballar amb la validació de dades a .NET
Aspose.Cells FOSS for .NET us permet afegir regles de validació de dades a intervals de cel·les mitjançant Worksheet.Validations (un ValidationCollection). Crida Add(CellArea) per crear un objecte Validation i establir el seu Type mitjançant ValidationType. Els tipus compatibles inclouen List, Decimal i Custom. Instal·la amb dotnet add package Aspose.Cells_FOSS.
Guia pas a pas
Pas 1: Instal·la el paquet
dotnet add package Aspose.Cells_FOSSPas 2: Importa l’espai de noms
using Aspose.Cells_FOSS;Pas 3: Afegeix una validació de llista desplegable
Crea un CellArea amb CellArea.CreateCellArea(), afegeix-lo a Worksheet.Validations i estableix ValidationType.List amb una llista separada per comes a Formula1.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Dropdown list for A1:A10
var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,In Progress,Closed\"";
listVal.InCellDropDown = true;
listVal.IgnoreBlank = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Choose a status from the dropdown";
wb.Save("list-validation.xlsx");
Console.WriteLine("List validation added.");Pas 4: Afegeix una validació d’interval numèric
Utilitzeu ValidationType.Decimal amb OperatorType.Between i Formula1/Formula2 per restringir l’entrada numèrica.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Decimal range validation for B1:B10 — allow 0 to 100
var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ErrorTitle = "Out of Range";
numVal.ErrorMessage = "Please enter a number between 0 and 100.";
numVal.ShowError = true;
numVal.IgnoreBlank = true;
wb.Save("decimal-validation.xlsx");
Console.WriteLine("Decimal validation added.");Pas 5: Combina diverses validacions al mateix full
Podeu afegir qualsevol nombre de validacions al mateix full cridant Validations.Add() diverses vegades, cada una amb un CellArea diferent.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// List validation for column A (status)
var statusVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A2", "A100"))];
statusVal.Type = ValidationType.List;
statusVal.Formula1 = "\"New,Open,Closed\"";
statusVal.InCellDropDown = true;
// Decimal validation for column B (score)
var scoreVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B2", "B100"))];
scoreVal.Type = ValidationType.Decimal;
scoreVal.Operator = OperatorType.Between;
scoreVal.Formula1 = "0";
scoreVal.Formula2 = "10";
scoreVal.ShowError = true;
wb.Save("combined-validation.xlsx");
Console.WriteLine("Combined validations added to sheet.");Problemes comuns i solucions
El menú desplegable no apareix a Excel després de desar.
Assegureu-vos que InCellDropDown = true estigui configurat a l’objecte Validation abans de desar. El menú desplegable només és visible a Excel quan aquest senyalador és true i s’utilitza ValidationType.List.
La validació permet valors fora del rang definit. La validació és aplicada per Excel, no per la biblioteca. Configurar regles de validació no impedeix que la biblioteca mateixa escrigui qualsevol valor a la cel·la. La validació s’aplica quan un usuari introdueix dades a Excel.
Formula1 per a una validació de llista es mostra com #NAME? a Excel.
Per a una llista en línia separada per comes, envolta la cadena entre cometes escapades: Formula1 = "\"Option1,Option2,Option3\"". Sense les cometes internes, Excel tracta el valor com una fórmula de referència de cel·la.
OperatorType.Between no s’aplica correctament.
Assegureu-vos que tant Formula1 (mínim) com Formula2 (màxim) estiguin establerts com a cadenes. Falta Formula2 per a Between deixa el límit superior indefinit.
Preguntes freqüents
Puc validar contra un interval de cel·les (p. ex. un interval amb nom)?
Estableix Formula1 a una referència d’interval de cel·les com ara "Sheet2!$A$1:$A$10". Els valors d’aquest interval s’utilitzaran com a origen de la llista desplegable.
La validació impedeix que la biblioteca escrigui valors invàlids?
No. Les regles de validació són aplicades per Excel quan un usuari introdueix dades. La biblioteca Aspose.Cells FOSS no aplica la validació quan crides Cell.PutValue() de manera programàtica.
Com elimino una regla de validació?
Accediu a la regla a través de Worksheet.Validations[index] i utilitzeu les operacions ValidationCollection per gestionar les regles. Alternativament, creeu un nou model de llibre de treball sense les regles no desitjades.
Quin és el nombre màxim de validacions per full?
El format XLSX admet fins a 65,530 regles de validació per full de càlcul.