כיצד לעבוד עם אימות נתונים ב‑.NET

כיצד לעבוד עם אימות נתונים ב‑.NET

Aspose.Cells FOSS for .NET מאפשר לך להוסיף כללי אימות נתונים לטווחי תאים דרך Worksheet.Validations (ValidationCollection). קרא ל-Add(CellArea) כדי ליצור אובייקט Validation ולהגדיר את Type שלו באמצעות ValidationType. סוגים נתמכים כוללים List, Decimal ו-Custom. התקן עם dotnet add package Aspose.Cells_FOSS.

מדריך שלב אחר שלב

שלב 1: התקן את החבילה

dotnet add package Aspose.Cells_FOSS

שלב 2: ייבא את מרחב השמות

using Aspose.Cells_FOSS;

שלב 3: הוסף אימות רשימת נפתחת

צור CellArea עם CellArea.CreateCellArea(), הוסף אותו לWorksheet.Validations, וקבע את ValidationType.List עם רשימה מופרדת בפסיקים ב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.");

שלב 4: הוסף אימות טווח מספרי

השתמש בValidationType.Decimal עם OperatorType.Between וFormula1/Formula2 כדי להגביל קלט מספרי.

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: שילוב מספר אימותים באותו גיליון

אתה יכול להוסיף כל מספר של אימותים לאותו גיליון על‑ידי קריאה לValidations.Add() מספר פעמים, כל אחת עם 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.");

בעיות נפוצות ותיקונים

התפריט הנפתח אינו מופיע ב‑Excel לאחר השמירה.
ודא שInCellDropDown = true מוגדר על האובייקט Validation לפני השמירה. התפריט הנפתח נראה ב‑Excel רק כאשר הדגל הזה הוא true וValidationType.List משמשים.

האימות מאפשר ערכים מחוץ לטווח המוגדר.
האימות נאכף על ידי Excel, ולא על ידי הספרייה. הגדרת כללי אימות אינה מונעת מהספרייה עצמה לכתוב כל ערך לתא. האימות מוחל כאשר משתמש מזין נתונים ב‑Excel.

Formula1 עבור אימות רשימה מוצג כ#NAME? ב‑Excel.
לרשימה מופרדת בפסיקים בתוך השורה, עטוף את המחרוזת במירכאות מוגלות: Formula1 = "\"Option1,Option2,Option3\"". ללא המירכאות הפנימיות, Excel מתייחס לערך כנוסחת הפנייה לתא.

OperatorType.Between אינו מתבצע כראוי.
ודא ששני Formula1 (מינימום) ו-Formula2 (מקסימום) מוגדרים כמחרוזות. חוסר Formula2 עבור Between משאיר את הגבול העליון לא מוגדר.

שאלות נפוצות

האם אני יכול לאמת נגד טווח תאים (למשל, טווח בשם)?

הגדר את Formula1 כהפניה לטווח תאים כגון "Sheet2!$A$1:$A$10". הערכים בטווח זה ישמשו כמקור לרשימת הבחירה.

האם אימות מונע מהספרייה לכתוב ערכים לא תקינים?

לא. כללי האימות נאכפים על ידי Excel כאשר משתמש מזין נתונים. ספריית Aspose.Cells FOSS אינה מאכיפה אימות כאשר אתה קורא לCell.PutValue() באופן תכנותי.

איך אני מסיר כלל אימות?

גש לכלל דרך Worksheet.Validations[index] והשתמש בפעולות ValidationCollection לניהול הכללים. לחלופין, צור מודל חוברת עבודה חדש ללא הכללים הלא רצויים.

מהו המספר המרבי של אימותים לכל גיליון?

פורמט XLSX תומך עד 65,530 כללי אימות לכל גיליון עבודה.

ראה גם

 עברית