كيفية العمل مع التحقق من البيانات في .NET
Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through 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 object قبل الحفاظ على الملف. إن النقطة التالية تظهر فقط في Excel عندما يتم وضع هذا العلم true و ValidationType.List يستخدم.
يسمح التحقق من صحة القيم خارج النطاق المحدد. يتم فرض التحقق من قبل Excel ، وليس المكتبة. لا يمنع تعيين قواعد التأكيد من مكتبة نفسها من كتابة أي قيمة إلى الخلية. يتم تطبيق التأكد عند إدخال المستخدم البيانات في Excel.
Formula1 بالنسبة لسلسلة التحقق من صحة القائمة تظهر كـ: #NAME? في إكسل. لـ قائمة منفصلة عن طريق الأقزام، قم بتغليف السلسلة في اقتباسات مفقودة: 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 قواعد التحقق لكل ورقة عمل.