Ako pracovať s overovaním údajov v .NET

Ako pracovať s overovaním údajov v .NET

Aspose.Cells FOSS pre .NET vám umožňuje pridávať pravidlá overovania dát do rozsahov buniek prostredníctvom Worksheet.Validations (ValidationCollection). Zavolajte Add(CellArea) na vytvorenie objektu Validation a nastavte jeho Type pomocou ValidationType. Podporované typy zahŕňajú List, Decimal a Custom. Inštalujte pomocou dotnet add package Aspose.Cells_FOSS.

Krok za krokom Sprievodca

Krok 1: Nainštalovať balík

dotnet add package Aspose.Cells_FOSS

Krok 2: Importovať Namespace

using Aspose.Cells_FOSS;

Krok 3: Pridať overenie rozbaľovacieho zoznamu

Vytvorte CellArea s CellArea.CreateCellArea(), pridajte ho do Worksheet.Validations a nastavte ValidationType.List pomocou zoznamu oddeleného čiarkami v 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.");

Krok 4: Pridať overenie číselného rozsahu

Použite ValidationType.Decimal s OperatorType.Between a Formula1/Formula2 na obmedzenie číselného vstupu.

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

Krok 5: Zlúčiť viacero overení na rovnakom hárku

Môžete pridať ľubovoľný počet validácií do rovnakého hárku volaním Validations.Add() viackrát, pričom každá má iný 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.");

Bežné problémy a riešenia

Rozbaľovacie pole sa po uložení v Exceli nezobrazí.
Uistite sa, že InCellDropDown = true je nastavený na objekte Validation pred uložením. Rozbaľovacie pole je v Exceli viditeľné iba vtedy, keď je tento príznak true a je použitý ValidationType.List.

Validácia umožňuje hodnoty mimo definovaného rozsahu. Validácia je vynútená v Exceli, nie knižnicou. Nastavenie pravidiel validácie nebráni samotnej knižnici zapisovať akúkoľvek hodnotu do bunky. Validácia sa uplatňuje, keď používateľ zadá údaje v Exceli.

Formula1 pre overovanie zoznamu sa zobrazuje ako #NAME? v Exceli. Pre inline zoznam oddelený čiarkami obalte reťazec únikovými úvodzovkami: Formula1 = "\"Option1,Option2,Option3\"". Bez vnútorných úvodzoviek Excel interpretuje hodnotu ako vzorec odkazujúci na bunku.

OperatorType.Between sa neaplikuje správne.
Uistite sa, že oba Formula1 (minimum) a Formula2 (maximum) sú nastavené ako reťazce. Chýbajúci Formula2 pre Between ponecháva hornú hranicu nedefinovanú.

Často kladené otázky

Môžem overovať voči rozsahu buniek (napr. pomenovanému rozsahu)?

Nastavte Formula1 na odkaz na rozsah buniek, napríklad "Sheet2!$A$1:$A$10". Hodnoty v tomto rozsahu budú použité ako zdroj pre rozbaľovací zoznam.

Zabraňuje validácia knižnici zapisovať neplatné hodnoty?

Nie. Pravidlá overovania sú vynútené v Exceli, keď používateľ zadáva údaje. Knižnica Aspose.Cells FOSS nepresadzuje overovanie, keď voláte Cell.PutValue() programovo.

Ako odstrániť validačné pravidlo?

Prístup k pravidlu cez Worksheet.Validations[index] a použite operácie ValidationCollection na správu pravidiel. Alternatívne vytvorte nový model zošita bez nežiaducich pravidiel.

Aký je maximálny počet validácií na hárok?

Formát XLSX podporuje až 65 530 validačných pravidiel na pracovný hárok.

Pozri tiež

 Slovenčina