Jak pracovat s ověřováním dat v .NET

Jak pracovat s ověřováním dat v .NET

Aspose.Cells FOSS pro .NET vám umožňuje přidávat pravidla ověřování dat do oblastí buněk pomocí Worksheet.Validations (a ValidationCollection). Zavolejte Add(CellArea) pro vytvoření objektu Validation a nastavte jeho Type pomocí ValidationType. Podporované typy zahrnují List, Decimal a Custom. Instalujte pomocí dotnet add package Aspose.Cells_FOSS.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

dotnet add package Aspose.Cells.FOSS

Krok 2: Naimportujte jmenný prostor

using Aspose.Cells_FOSS;

Krok 3: Přidejte ověření seznamu v rozbalovacím poli

Vytvořte CellArea s CellArea.CreateCellArea(), přidejte jej do Worksheet.Validations a nastavte ValidationType.List s čárkami odděleným seznamem 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: Přidejte ověření číselného rozsahu

Použijte ValidationType.Decimal s OperatorType.Between a Formula1/Formula2 k omezení čí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: Kombinujte více ověření na stejném listu

Můžete přidat libovolný počet ověření na stejný list voláním Validations.Add() vícekrát, každé s jiným 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.");

Běžné problémy a opravy

Rozbalovací seznam se po uložení v Excelu nezobrazí. Ensure InCellDropDown = true je nastaven na Validation objekt před uložením. Rozbalovací seznam je v Excelu viditelný pouze tehdy, když je tento příznak true and ValidationType.List je použito.

Validace umožňuje hodnoty mimo definovaný rozsah. Validaci vynucuje Excel, nikoli knihovna. Nastavení validačních pravidel nezabraňuje samotné knihovně zapisovat libovolnou hodnotu do buňky. Validace se použije, když uživatel zadá data v Excelu.

Formula1 pro seznamovou validaci se zobrazuje jako #NAME? v Excelu. Pro inline seznam oddělený čárkami zabalte řetězec do escapovaných uvozovek: Formula1 = "\"Option1,Option2,Option3\"". Bez vnitřních uvozovek Excel považuje hodnotu za vzorec odkazující na buňku.

OperatorType.Between neaplikuje se správně. Zajistěte, aby oba Formula1 (minimum) a Formula2 (maximum) jsou nastaveny jako řetězce. Chybějící Formula2 for Between ponechává horní mez nedefinovanou.

Často kladené otázky

Mohu validovat vůči rozsahu buněk (např. pojmenovanému rozsahu)?

Nastavte Formula1 na odkaz na rozsah buněk, například "Sheet2!$A$1:$A$10". Hodnoty v tomto rozsahu budou použity jako zdroj pro rozbalovací seznam.

Zabraňuje validace knihovně zapisovat neplatné hodnoty?

Ne. Validační pravidla vynucuje Excel, když uživatel zadá data. Aspose.Cells FOSS knihovna nevybírá validaci, když voláte Cell.PutValue() programově.

Jak odstranit validační pravidlo?

Pravidlo přistupte přes Worksheet.Validations[index] a použijte operace ValidationCollection k správě pravidel. Případně vytvořte nový model sešitu bez nechtěných pravidel.

Jaký je maximální počet validací na listu?

Formát XLSX podporuje až 65,530 validačních pravidel na list.

Viz také:

 Čeština