Πώς να εργαστείτε με την επικύρωση δεδομένων στο .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: Εισαγωγή του Namespace
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 κανόνες επικύρωσης ανά φύλλο εργασίας.