डेटा वैलिडिंग के साथ काम करना
डेटा वैलिडिंग के साथ काम करना
Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation और ValidationCollection कक्षाएं - के लिए WorkbookValidator क्लास एक पूर्व-बंद संतुलन जांच प्रदान करता है।.
एक वैधता नियम जोड़ना
एक कार्यपत्रक के लिए वैधता संग्रह में जाएं और एक नया नियम जोड़ें ValidationCollection::Add(). वापस भेजे गए पर प्रकार, सूत्र और लक्ष्य क्षेत्र सेट करें Validation वस्तु :
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/ValidationCollection.h"
#include "aspose/cells_foss/Validation.h"
#include "aspose/cells_foss/CellArea.h"
using namespace Aspose::Cells_FOSS;
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
ValidationCollection& validations = sheet.GetValidations();
int idx = validations.Add();
Validation& v = validations[idx];
v.SetType(ValidationType::WholeNumber);
v.SetFormula1("1");
v.SetFormula2("100");
v.SetIgnoreBlank(true);
v.SetInCellDropDown(false);
v.SetInputTitle("Enter Value");
v.SetInputMessage("Value must be between 1 and 100.");
v.SetErrorTitle("Invalid Input");
v.SetErrorMessage("Value is out of range.");
v.SetShowInput(true);
v.SetShowError(true);
CellArea area = CellArea::CreateCellArea("B2", "B10");
v.AddArea(area);
workbook.Save("validated.xlsx");
return 0;
}वैधता प्रकार
के लिए ValidationType सूची में उन प्रकार के प्रतिबंधों को परिभाषित किया गया है जिन्हें लागू किया जा सकता है:
| ValidationType | Description |
|---|---|
WholeNumber | कुल मूल्य प्रतिबंध |
Decimal | फ्लोटिंग पॉइंट सीमित |
List | ड्रॉप-डाउन सूची से एक सूत्र या रेंज |
Date | समय सीमा सीमित है |
TextLength | लंबी सीमितता |
Custom | फॉर्मूला-आधारित नियम |
चेतावनी शैली
के लिए ValidationAlertType सूचीकरण व्यवहार को नियंत्रित करता है जब वैधता विफल हो जाती है:
| AlertStyle | Behavior |
|---|---|
Stop | प्रवेश को अवरुद्ध करें और एक त्रुटि संवाद दिखाएं |
Warning | एक चेतावनी दिखाएं; उपयोगकर्ता स्वीकार कर सकता है या अस्वीकार कर सकते हैं |
Information | एक सूचना टूल टिप दिखाएं |
अलार्म स्टाइल सेट करें Validation::SetAlertStyle(ValidationAlertType).
एक सेल में वैधता की मांग करना
उपयोग करें ValidationCollection::GetValidationInCell(row, col) यह पता लगाने के लिए कि कौन सा वैधता नियम एक विशिष्ट सेल पर लागू होता है. वापसी nullptr अगर कोई नियम नहीं है।.
वैधता नियमों को हटाने के लिए
एक विशिष्ट सेल या रेंज क्षेत्र से वैधता को हटा दें:
CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)
Pre-Save Workbook Validation के बारे में जानकारी
Call WorkbookValidator::ValidateForSave कामकाजी में संतुलन की जांच करने से पहले एक कार्यपुस्तिका मॉडल पर चलना. यह स्वचालित रूप से कहा जाता है Workbook::Save लेकिन विकास के दौरान स्वतंत्र रूप से संबोधित किया जा सकता है:
WorkbookValidator validator;
validator.ValidateForSave(workbook);टिप्स और सर्वश्रेष्ठ अभ्यास
- हमेशा दोनों को बनाएं
SetFormula1औरSetFormula2अनुमान के लिए (WholeNumber,Decimal,Date( ) नीचे और ऊपर की सीमाओं को परिभाषित करने के लिए।. - उपयोग करें
SetIgnoreBlank(true)खाली कोशिकाओं को कोई त्रुटि पैदा किए बिना वैधता पास करने की अनुमति दें।. - Call
ValidationCollection::AreasOverlapएक नए नियम जोड़ने से पहले, एक ही शीट पर वैधता क्षेत्रों को पार करने के लिए जांच करें।. WorkbookValidator::ValidateForSaveआंतरिक रूप से बचाव के लिए बुलाया जाता है; विकास के दौरान समस्याओं को जल्दी पकड़ने के बारे में इसे बुवा करें।.
सामान्य मुद्दे
| Issue | Cause | फिक्स करें |
|---|---|---|
| सेल पर लागू नहीं किया गया वैधता | क्षेत्र नहीं जोड़ा गया है | Call Validation::AddArea(area) लक्ष्य रेंज के साथ |
| डाउनलोड नहीं दिखाने के लिए | SetInCellDropDown(false) | सेट SetInCellDropDown(true) सूची वैधता के लिए |
| नियमों से अधिक | दो नियम एक ही कोशिकाओं को कवर करते हैं | उपयोग करें AreasOverlap संघर्षों का पता लगाने और हल करने के लिए |
| असफलता के लिए सक्षम | असंगतता मॉडल | बचत से पहले रिपोर्ट की असंगति की समीक्षा और सुधार करें |
API संदर्भ सारांश
| वर्ग / विधि | Description |
|---|---|
ValidationCollection::Add() | एक नया खाली वैधता नियम जोड़ें |
ValidationCollection::GetValidationInCell(row, col) | एक सेल के लिए वैधता खोजें |
ValidationCollection::RemoveArea(area) | एक रेंज से वैधता हटाने के लिए |
ValidationCollection::RemoveACell(row, col) | एक सेल से वैधता हटाने के लिए |
ValidationCollection::AreasOverlap | वैधता के क्षेत्रों को देखने के लिए जांच करें |
Validation::SetType(ValidationType) | वैधता के प्रकार सेट करें |
Validation::SetFormula1(expr) | नीचे की सीमा या सूची स्रोत सेट करें |
Validation::SetFormula2(expr) | ऊपर सेट करें बंडल |
Validation::AddArea(area) | एक नियम को रेंज पर लागू करें |
Validation::RemoveArea(area) | एक रेंज से नियम हटा दें |
Validation::SetAlertStyle(style) | रोकने / चेतावनी / सूचना व्यवहार सेट करें |
WorkbookValidator::ValidateForSave | Pre-Save Consistency चेक करें |