كيفية العمل مع التحقق من البيانات في .NET

كيفية العمل مع التحقق من البيانات في .NET

Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (أ) أ ValidationCollection* اتصلت Add(CellArea) لإنشاء A 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 عندما يدخل المستخدم البيانات. The Aspose.Cells FOSS library does not enforce validation when you call Cell.PutValue() برامجية .

كيف يمكنني إزالة قاعدة التحقق؟?

الوصول إلى القاعدة من خلال Worksheet.Validations[index] واستخدامها ValidationCollection بدلاً من ذلك، قم بإنشاء نموذج جديد للكتب دون القواعد غير المرغوب فيها.

ما هو الحد الأقصى لعدد التحقق لكل ورقة؟?

يدعم تنسيق XLSX ما يصل إلى 65,530 قواعد التحقق لكل ورقة عمل.

انظر أيضا

 العربية