Kuinka työskennellä tietojen validoinnin kanssa .NETissä

Kuinka työskennellä tietojen validoinnin kanssa .NETissä

Aspose.Cells FOSS for .NET mahdollistaa tietojen validointisääntöjen lisäämisen solualueisiin Worksheet.Validations (ValidationCollection). Kutsu Add(CellArea) luodaksesi Validation-objektin ja aseta sen Type käyttäen ValidationType. Tuetut tyypit sisältävät List, Decimal ja Custom. Asenna dotnet add package Aspose.Cells_FOSS.

Vaiheittainen opas

Vaihe 1: Asenna paketti

dotnet add package Aspose.Cells_FOSS

Vaihe 2: Tuo nimiavaruus

using Aspose.Cells_FOSS;

Vaihe 3: Lisää luettelon avattavan valikon validointi

Luo CellArea CellArea.CreateCellArea():lla, lisää se Worksheet.Validations:iin ja aseta ValidationType.List pilkulla erotetulla listalla Formula1:ssa.

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

Vaihe 4: Lisää numeerinen aluevalidointi

Käytä ValidationType.Decimal yhdessä OperatorType.Between ja Formula1/Formula2 rajoittaaksesi numeerista syötettä.

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

Vaihe 5: Yhdistä useita validointeja samalle taulukolle

Voit lisätä minkä tahansa määrän validointeja samaan taulukkoon kutsumalla Validations.Add() useita kertoja, jokaisella eri 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.");

Yleisiä ongelmia ja korjauksia

Pudotusvalikko ei näy Excelissä tallennuksen jälkeen. Varmista, että InCellDropDown = true on asetettu Validation-objektiin ennen tallentamista. Pudotusvalikko on näkyvissä Excelissä vain, kun tämä lippu on true ja ValidationType.List on käytössä.

Validointi sallii arvot määritetyn alueen ulkopuolella.
Validointi toteutetaan Excelissä, ei kirjastossa. Validointisääntöjen asettaminen ei estä kirjastoa kirjoittamasta mitä tahansa arvoa soluun. Validointi toteutetaan, kun käyttäjä syöttää tietoja Exceliin.

Formula1 listavalidoinnissa näkyy #NAME? Excelissä.
Sisäkkäiselle pilkulla erotetulle listalle kääri merkkijono pakatuissa lainausmerkeissä: Formula1 = "\"Option1,Option2,Option3\"". Ilman sisäisiä lainausmerkkejä Excel käsittelee arvon solun viitekaavana.

OperatorType.Between ei toimi oikein. Varmista, että sekä Formula1 (minimi) että Formula2 (maksimi) on asetettu merkkijonoiksi. Puuttuva Formula2 Between:lle jättää ylärajan määrittelemättömäksi.

Usein kysytyt kysymykset

Voinko validoida solualueen (esim. nimetty alue) perusteella?

Aseta Formula1 solujen alueviitteeksi, esimerkiksi "Sheet2!$A$1:$A$10". Tämän alueen arvot käytetään alasvetovalikon lähteenä.

Estääkö validointi kirjastoa kirjoittamasta virheellisiä arvoja?

Ei. Validointisäännöt toteutetaan Excelissä, kun käyttäjä syöttää tietoja. Aspose.Cells FOSS -kirjasto ei toteuta validointia, kun kutsut Cell.PutValue() ohjelmallisesti.

Kuinka poistan validointisäännön?

Pääse sääntöön Worksheet.Validations[index] kautta ja käytä ValidationCollection -toimintoja sääntöjen hallintaan. Vaihtoehtoisesti luo uusi työkirjamalli ilman ei-toivottuja sääntöjä.

Mikä on suurin validointien määrä per arkki?

XLSX-muoto tukee enintään 65,530 validointisääntöä per laskentataulukko.

Katso myös

 Suomi