Veri Validasyonu ile Çalışma
Veri Validasyonu ile Çalışma
Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation ve ValidationCollection Sınıflar - The WorkbookValidator Sınıf önceden kurtarma tutarlılık kontrolü sağlar.
Validasyon Kuralını Ekleyin
Bir çalışma sayfası için doğrulama koleksiyonuna erişin ve yeni bir kural ekleyin. ValidationCollection::Add().Tip, formül ve hedef alanı iade edilen üzerine ayarlayın. Validation nesne :
#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;
}Validasyon türleri
O zamanlar ValidationType listede uygulanacak kısıtlamaların türleri belirlenir:
| ValidationType | Description |
|---|---|
WholeNumber | Tüm değer sınırlaması |
Decimal | Floating Point Sınırlama |
List | Drop-down listesi bir formül veya aralıktan |
Date | Tarih Değerleri Sınırlı |
TextLength | Uzunluk sınırlaması |
Custom | Formül tabanlı kural |
Alarm tarzı
O zamanlar ValidationAlertType listeler, doğrulama başarısız olduğunda gösterilen davranışları kontrol eder:
| AlertStyle | Behavior |
|---|---|
Stop | giriş bloklar ve bir hata diyaloğu gösterir |
Warning | Bir uyarı gösterir; kullanıcı kabul edebilir veya reddedebilir |
Information | Bilgi Teknolojisi Araçları Göster |
Alarm tarzı ile ayarlayın. Validation::SetAlertStyle(ValidationAlertType).
Bir hücrede doğrulama isteği
Kullanım ValidationCollection::GetValidationInCell(row, col) Hangi doğrulama kuralı belirli bir hücre için geçerlidir. geri dönüşler nullptr Kural yoksa.
Validasyon Kuralları kaldırma
Belirli bir hücre veya aralık alanından bir doğrulama kaldırın:
CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)
Önceki yazı: Savunma Workbook Validation
Call WorkbookValidator::ValidateForSave Tasarruf yapmadan önce çalışma kitabı modelinde tutarlılık kontrolü çalıştırmak için. bu otomatik olarak adlandırılır Workbook::Save Ancak, geliştirme sırasında bağımsız olarak talep edilebilir:
WorkbookValidator validator;
validator.ValidateForSave(workbook);İpuçları ve En İyi Uygulamalar
- Her zaman her ikisini de ayarlayın
SetFormula1veSetFormula2Sürücüler için (WholeNumber,Decimal,Date• Aşağı ve üst sınırları belirlemek. - Kullanım
SetIgnoreBlank(true)boş hücrelerin bir hata yapmadan doğrulama geçmesine izin vermek. - Call
ValidationCollection::AreasOverlapYeni bir kural eklemeden önce, aynı sayfada geçerlilik alanlarının aşırı derecede geçişini kontrol etmek için. WorkbookValidator::ValidateForSaveiçeride kurtarma çağrısı yapılır; gelişme sırasında sorunları erken yakalamak için çağırır.
ortak sorunlar
| Issue | Cause | Fix |
|---|---|---|
| - Hücreye Uygulanmamış Validasyon | Bölge eklemedi | Call Validation::AddArea(area) Hedef aralığı ile |
| Drop-down gösterilmez | SetInCellDropDown(false) | Setleri SetInCellDropDown(true) Listede Validasyonlar |
| Kurallar aşırı | İki kural aynı hücreleri kapsar. | Kullanım AreasOverlap çatışmaların tespit edilmesi ve çözülmesi |
| Sürücüsüzlük başarısızlık | Model tutarsızlığı | Tasarruf Öncesi bildirilen tutarsızlıkları incelemek ve düzeltmek |
API Referans Özetleri
| Sınıf / Yöntem | Description |
|---|---|
ValidationCollection::Add() | Yeni bir boş doğrulama kuralı eklemek |
ValidationCollection::GetValidationInCell(row, col) | Bir hücre için bir doğrulama bulmak |
ValidationCollection::RemoveArea(area) | Bir aralıktan geçiş yaptırın |
ValidationCollection::RemoveACell(row, col) | Bir hücrenin doğrulamasını kaldırın |
ValidationCollection::AreasOverlap | Kontrolü aşan valide alanları için |
Validation::SetType(ValidationType) | Validasyon Tipi Belirlenir |
Validation::SetFormula1(expr) | Aşağıdaki link veya listelere ayarlayın |
Validation::SetFormula2(expr) | Top Bağlantı |
Validation::AddArea(area) | Bir Range’a kural uygulayın |
Validation::RemoveArea(area) | Bir Range’dan kural çıkarın |
Validation::SetAlertStyle(style) | Sıkıştırma / uyarı / bilgi davranışları |
WorkbookValidator::ValidateForSave | Önceden kurtarma tutarlılık kontrolü |