Cum să lucrați cu validarea datelor în .NET

Cum să lucrați cu validarea datelor în .NET

Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (a) ValidationCollection) Apelul Add(CellArea) pentru a crea o Validation obiectul şi să-şi stabilească Type utilizarea ValidationType.Tipurile acceptate includ: List, Decimal, și Custom.Instalarea cu: dotnet add package Aspose.Cells_FOSS.

Ghid pas cu pas

Pasul 1: Instalați pachetul

dotnet add package Aspose.Cells_FOSS

Pasul 2: Importarea spațiului de nume

using Aspose.Cells_FOSS;

Pasul 3: Adăugați o listă de verificare în descărcare

Creează un CellArea cu: CellArea.CreateCellArea(), adăugaţi-o la Worksheet.Validations, și setate ValidationType.List cu o listă separată de virgulă în 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.");

Pasul 4: Adăugați o validare a intervalului numeric

Utilizare: ValidationType.Decimal cu: OperatorType.Between și de: Formula1/Formula2 pentru a limita intrarea numerică.

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

Pasul 5: Combinați mai multe validări pe aceeași foaie

Puteți adăuga orice număr de validări la aceeași fișă prin apelul Validations.Add() de mai multe ori, fiecare cu un alt fel de CellArea.

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

Probleme comune şi soluţii

Lista de descărcare nu apare în Excel după salvare. Asigurarea InCellDropDown = true este stabilită pe Validation Obiectul înainte de a salva. Desenul desfășurat este vizibil în Excel numai atunci când acest steag este afișat pe true și de: ValidationType.List este folosit.

Validarea permite valori în afara intervalului definit. Validarea este impusă de Excel, nu de bibliotecă. Stabilirea regulilor de validare nu împiedică biblioteca să scrie orice valoare în celulă. Validația se aplică atunci când un utilizator introduce date în Excel.

Formula1 pentru o listă, validarea arată ca: #NAME? în Excel. Pentru o listă în linie separată de virgulă, împachetați șirul cu citate scăpate: Formula1 = "\"Option1,Option2,Option3\"".Fără citate interioare, Excel tratează valoarea ca o formulă de referință a celulei.

OperatorType.Between nu se aplică corect. Asigură-te că ambele Formula1 (minimum) și Formula2 (maximum) sunt setate ca șiruri. Lipsește Formula2 pentru: Between lasă limita superioară nedefinită.

Întrebări frecvente

Pot valida împotriva unei serii de celule (de exemplu, o serie numită)?

Setare Formula1 la o referință de interval de celule, cum ar fi: "Sheet2!$A$1:$A$10".Valoarele din această gamă vor fi utilizate ca sursă a listei deschise.

Validarea împiedică biblioteca să scrie valori nevalide?

Nu. Excel impune regulile de validare atunci când un utilizator introduce date. Biblioteca FOSS nu aplică validarea atunci cand sunati la Aspose.Cells Cell.PutValue() programatic.

Cum elimin o regulă de validare?

Acces la regulă prin Worksheet.Validations[index] și utilizarea ValidationCollection În mod alternativ, creați un nou model de carte fără reguli nedorite.

Care este numărul maxim de validări pe fișă?

Formatul XLSX suportă până la 65.530 de reguli de validare pe foaie.

Vezi și:

 Română