Jak pracovat s ověřováním dat v .NET
Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (a) ValidationCollection) Volání Add(CellArea) vytvořit Validation objekt a nastavit jeho Type Použití: ValidationType.Podporované typy zahrnují: List, Decimal,a) Custom. Nainstalovat s dotnet add package Aspose.Cells_FOSS.
Krok za krokem
Krok 1: Nainstalujte balíček
dotnet add package Aspose.Cells_FOSSKrok 2: Importovat prostor pro jména
using Aspose.Cells_FOSS;Krok 3: Přidání vyvěšovacího ověření seznamu
Vytvořit CellArea s: CellArea.CreateCellArea(), přidejte to k Worksheet.Validations, a nastavit ValidationType.List s odděleným číslem v písmenech a) až b), 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řidání numerického rozsahu ověření
Použití: ValidationType.Decimal s: OperatorType.Between a) Formula1/Formula2 omezit číselný vstup.
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: Spojte více ověřování na stejném listu
Můžete přidat libovolný počet ověřování na stejný list zavoláním Validations.Add() několikrát, každý s jinou 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.");Obvyklé problémy a řešení
Popisková položka se v Excelu po uložení neobjeví. Zajištění: InCellDropDown = true je nastaven na: Validation Objekt před ukládáním. Odkládací položka je viditelná pouze v Excelu, když je tato značka true a) ValidationType.List je použita.
Validace umožňuje hodnoty mimo definovaný rozsah. Ověřování je vynucováno Excelem, ne knihovnou. Nastavení pravidel ověření nezabrání samotné knížce v psaní jakékoli hodnoty do buňky. Vyrovnání se uplatňuje při zadávání dat uživatelem do programu Excel.
Formula1 pro validaci seznamu se zobrazuje jako: #NAME? v Excelu. Pro seznam v řádku oddělený přepínačemi zavírejte režii do únikových citátů: Formula1 = "\"Option1,Option2,Option3\"".Bez vnitřních odvolání Excel zachází s hodnotou jako se vzorec.
OperatorType.Between nesprávné použití. Zajistit obě. Formula1 (minimální) a Formula2 (maximum) jsou nastaveny jako řetězce. Chybí Formula2 pro: Between nechává horní hranici nedefinovanou.
Časté otázky
Mohu ověřit proti rozsahu buněk (např. jmenovaný rozsah)?
Sestavení: Formula1 na referenční rozsah buněk, jako je: "Sheet2!$A$1:$A$10".Hodnoty v tomto rozsahu budou použity jako zdroj rozbalovaného seznamu.
Zaručuje ověřování knihovně, aby zapsala neplatné hodnoty?
Ne. Pravidla ověřování jsou vynucována v Excelu, když uživatel zadá data. Knihovna Aspose.Cells FOSS nepovoluje ověření při volání. Cell.PutValue() programově.
Jak odstraním ověřovací pravidlo?
Přístup k pravidlu přes Worksheet.Validations[index] a použití ValidationCollection Alternativně vytvořte nový model pracovní knihy bez nežádoucích pravidel.
Jaký je maximální počet ověřování na list?
Formát XLSX podporuje až 65 530 ověřovacích pravidel na pracovní list.