Kā strādāt ar datu validāciju .NET vidē

Kā strādāt ar datu validāciju .NET vidē

Aspose.Cells FOSS for .NET ļauj pievienot datu validācijas noteikumus šūnu diapazoniem, izmantojot Worksheet.Validations (ValidationCollection). Izsauciet Add(CellArea), lai izveidotu Validation objektu un iestatītu tā Type, izmantojot ValidationType. Atbalstītie veidi ietver List, Decimal un Custom. Instalējiet ar dotnet add package Aspose.Cells_FOSS.

Rokasgrāmata soli pa solim

1. solis: instalēt pakotni

dotnet add package Aspose.Cells_FOSS

2. solis: Importēt nosaukumtelpu

using Aspose.Cells_FOSS;

3. solis: Pievienot saraksta nolaižamā izvēles validāciju

Izveidojiet CellArea ar CellArea.CreateCellArea(), pievienojiet to Worksheet.Validations, un iestatiet ValidationType.List ar komatu atdalītu sarakstu 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.");

Solis 4: Pievienot skaitliska diapazona validāciju

Izmantojiet ValidationType.Decimal kopā ar OperatorType.Between un Formula1/Formula2, lai ierobežotu skaitlisko ievadi.

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

5. solis: Apvienot vairākas validācijas tajā pašā lapā

Jūs varat pievienot jebkuru skaitu validāciju tajā pašā lapā, izsaucot Validations.Add() vairākas reizes, katru reizi ar atšķirīgu 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.");

Biežas problēmas un risinājumi

Nolaižamais saraksts neparādās Excel pēc saglabāšanas.
Pārliecinieties, ka InCellDropDown = true ir iestatīts uz Validation objektu pirms saglabāšanas. Nolaižamais saraksts ir redzams Excel tikai tad, ja šis karogs ir true un tiek izmantots ValidationType.List.

Validācija ļauj vērtības ārpus definētā diapazona.
Validāciju īsteno Excel, nevis bibliotēka. Validācijas noteikumu iestatīšana neaptur bibliotēku pašas rakstīt jebkuru vērtību šūnā. Validācija tiek piemērota, kad lietotājs ievada datus Excel.

Formula1 saraksta validācijai tiek parādīts kā #NAME? programmā Excel.
Lai izmantotu vienkāršu komatu atdalītu sarakstu, aptiniet virkni ar aizbēgtām pēdiņām: Formula1 = "\"Option1,Option2,Option3\"". Bez iekšējām pēdiņām Excel uzskata vērtību par šūnas atsauces formulu.

OperatorType.Between nepareizi tiek piemērots.
Pārliecinieties, ka gan Formula1 (minimum), gan Formula2 (maximum) ir iestatīti kā virknes. Trūkst Formula2 priekš Between, kas atstāj augšējo robežu nedefinētu.

Biežāk uzdotie jautājumi

Vai es varu validēt pret šūnu diapazonu (piemēram, nosauktu diapazonu)?

Iestatiet Formula1 uz šūnu diapazona atsauci, piemēram, "Sheet2!$A$1:$A$10". Šī diapazona vērtības tiks izmantotas kā nolaižamā saraksta avots.

Vai validācija neļauj bibliotēkai rakstīt nederīgas vērtības?

Nē. Validācijas noteikumus īsteno Excel, kad lietotājs ievada datus. Aspose.Cells FOSS bibliotēka neīsteno validāciju, kad izsauciet Cell.PutValue() programmatiski.

Kā noņemt validācijas noteikumu?

Piekļūstiet noteikumam caur Worksheet.Validations[index] un izmantojiet ValidationCollection operācijas, lai pārvaldītu noteikumus. Alternatīvi izveidojiet jaunu darba grāmatas modeli bez nevēlamajiem noteikumiem.

Kāds ir maksimālais validāciju skaits uz vienas loksnes?

XLSX formāts atbalsta līdz 65,530 validācijas noteikumiem katrā darblapā.

Skatīt arī

 Latviešu