Hogyan dolgozzunk az adatellenőrzéssel a .NET-ben

Hogyan dolgozzunk az adatellenőrzéssel a .NET-ben

Aspose.Cells FOSS for .NET lehetővé teszi, hogy adatellenőrzési szabályokat adjunk hozzá cellatartományokhoz Worksheet.Validations (egy ValidationCollection) segítségével. Hívja meg Add(CellArea)-t, hogy létrehozzon egy Validation objektumot, és állítsa be annak Type-ját ValidationType használatával. Támogatott típusok közé tartozik List, Decimal és Custom. Telepítse dotnet add package Aspose.Cells_FOSS-val.

Lépésről‑lépésre útmutató

1. lépés: A csomag telepítése

dotnet add package Aspose.Cells_FOSS

2. lépés: Névterület importálása

using Aspose.Cells_FOSS;

3. lépés: Lista legördülő érvényesítés hozzáadása

Hozzon létre egy CellArea-t CellArea.CreateCellArea()-val, adja hozzá a Worksheet.Validations-hez, és állítsa be a ValidationType.List-t egy vesszővel elválasztott listával a Formula1-ben.

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

4. lépés: Számérték-tartomány ellenőrzés hozzáadása

Használja a ValidationType.Decimal-t a OperatorType.Between-vel és a Formula1/Formula2-vel a numerikus bemenet korlátozásához.

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. lépés: Több érvényesítés egyesítése ugyanazon a lapon

Ugyanarra a lapra tetszőleges számú érvényesítést adhat hozzá, ha többször meghívja a Validations.Add()-t, mindegyikhez eltérő CellArea-t használva.

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

Általános problémák és megoldások

A legördülő menü nem jelenik meg az Excelben mentés után. Győződjön meg arról, hogy a InCellDropDown = true be van állítva a Validation objektumon mentés előtt. A legördülő csak akkor látható az Excelben, ha ez a jelző true, és a ValidationType.List van használva.

Az érvényesítés lehetővé teszi a meghatározott tartományon kívüli értékek használatát.
Az érvényesítést az Excel kényszeríti ki, nem a könyvtár. Az érvényesítési szabályok beállítása nem akadályozza meg a könyvtárat abban, hogy bármilyen értéket írjon a cellába. Az érvényesítés akkor kerül alkalmazásra, amikor a felhasználó adatot ad meg az Excelben.

Formula1 egy listaellenőrzéshez #NAME?-ként jelenik meg Excelben.
Egy beágyazott, vesszővel elválasztott lista esetén a karakterláncot escape‑elt idézőjelek közé kell tenni: Formula1 = "\"Option1,Option2,Option3\"". Az idézőjelek nélkül az Excel az értéket cellahivatkozás‑képletként kezeli.

OperatorType.Between nem alkalmazódik helyesen. Győződjön meg arról, hogy a Formula1 (minimum) és a Formula2 (maximum) is karakterláncként van beállítva. A Formula2 hiánya a Between esetén a felső határt meghatározatlanul hagyja.

Gyakran Ismételt Kérdések

Validálhatok egy cellatartományra (pl. egy névvel ellátott tartomány)?

Állítsa be a Formula1 értékét egy cellatartomány hivatkozásra, például a "Sheet2!$A$1:$A$10"-ra. Ennek a tartománynak az értékei lesznek a legördülő lista forrásai.

Megakadályozza a validáció, hogy a könyvtár érvénytelen értékeket írjon?

Nem. Az érvényesítési szabályokat az Excel kényszeríti ki, amikor a felhasználó adatot ad meg. Az Aspose.Cells FOSS könyvtár nem kényszeríti ki az érvényesítést, ha programozottan meghívja a Cell.PutValue()‑t.

Hogyan távolíthatom el az érvényesítési szabályt?

A szabályt a Worksheet.Validations[index] segítségével érheti el, és a ValidationCollection műveleteket használja a szabályok kezeléséhez. Alternatív megoldásként hozhat létre egy új munkafüzet-modellt a nem kívánt szabályok nélkül.

Mi a maximális validációk száma egy munkalapon?

Az XLSX formátum legfeljebb 65,530 érvényesítési szabályt támogat munkalaponként.

Lásd még

 Magyar