C++'da bir spreadsheet'e veri doğrulama eklemek için nasıl

C++'da bir spreadsheet'e veri doğrulama eklemek için nasıl

Aspose.Cells FOSS for C++ supports cell-level data validation rules that constrain what values users can enter in specific cells or ranges. The Validation, ValidationCollection,ve WorkbookValidator Sınıflar, API’yi oluşturur.

Adım adım rehberlik

Adım 1: Yapıyı Kurun

cmake_minimum_required(VERSION 3.15)
project(DataValidation CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(DataValidation main.cpp)
target_link_libraries(DataValidation PRIVATE Aspose.Cells.Foss.Cpp)

Adım 2: Gerekli Başlıkları Ekle

#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;

Adım 3: Validation Collection’a erişiniz

Retrade için ValidationCollection Çalışma sayfasından :

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    ValidationCollection& validations = sheet.GetValidations();
    return 0;
}

Adım 4: Bir Doğrulama Kuralı Ekleyin

Call ValidationCollection::Add() Geri dönüşü yaptırın Validation nesne :

int idx = validations.Add();
Validation& v = validations[idx];

v.SetType(ValidationType::WholeNumber);
v.SetFormula1("1");
v.SetFormula2("100");
v.SetIgnoreBlank(true);
v.SetInputTitle("Enter Quantity");
v.SetInputMessage("Enter a whole number between 1 and 100.");
v.SetErrorTitle("Invalid Input");
v.SetErrorMessage("Value must be between 1 and 100.");
v.SetShowInput(true);
v.SetShowError(true);
v.SetAlertStyle(ValidationAlertType::Stop);

5. Adım: Kuralları bir aralığa uygulayın

Validasyonun bir parçası olarak A’ya CellArea Kullanımı Validation::AddArea:

CellArea area = CellArea::CreateCellArea("B2", "B20");
v.AddArea(area);

Adım 6: Çalışma Kitabını Kaydet

workbook.Save("validated.xlsx");
workbook.Dispose();

Adım 7: Ön Tasarruf Validasyonu (Seçmeli)

Call WorkbookValidator::ValidateForSave Tasarruf öncesi model sorunları yakalamak için geliştirme sırasında:

WorkbookValidator validator;
validator.ValidateForSave(workbook);
workbook.Save("validated.xlsx");

Toplam Sorunlar ve Çözümler

-Kayıtlı dosyada görünmez doğrulama Ensure Validation::AddArea(area) Kural oluşturduktan sonra çağırılır. ilişkili alan olmayan bir kural serialize edilmez.

Drop-down listesi gösterilmiyor Setleri v.SetInCellDropDown(true) ve set v.SetType(ValidationType::List) ile SetFormula1 Bir aralığı veya comma ayrı değerleri işaret eder.

Valideasyon alanları aşırı Kullanım ValidationCollection::AreasOverlap Yeni bir kural eklemeden önce çatışmalar kontrol etmek.Yükseklik kuralı Excel’de beklenmedik davranışlar üretebilir.

Giriş Mesajı Görünmez İkisi de güvence altına alın SetShowInput(true) ve SetInputMessage("...") Bir boş mesaj çubuğu, giriş hızını bastırır. SetShowInput(true) Çağırılır .

ValidateForSave Hataları bildirmek Yaygın nedenler aralıksız formül sınırları ve bozuk hücre alanı koordinatları için eksik formülü içerir.

Sıkça Sorulan Sorular

Hangi validasyon türleri desteklenir?

O zamanlar ValidationType Listesi şunları içerir: WholeNumber, Decimal, List, Date, TextLength, Custom,ve Any.

Bir aralıktan bir geçerlilik kuralını çıkarabilir miyim?

Evet Kullanım ValidationCollection::RemoveArea(area) Kuralları bir aralıktan çıkarmak veya RemoveACell(row, col) Tek bir hücre için.

Aynı geçerlilik kuralı birden fazla aralık için uygulanabilir mi?

Evet Çağrı Validation::AddArea(area) Aynı zamanda birçok kez Validation Bu nedenle, ek aralıklara uygulanması gerekmektedir.

Hangi alarm stillerinin mevcut olması?

ValidationAlertType içerir : Stop (Giriş engellemeyi engelleyenler için), Warning (Giriş yaptırmak için uyarı ve Information (Sadece bilgi aletleri için).

Doğrulama çalışma saatinde mi, yoksa yalnızca Excel’de mi çalışıyor?

Veri doğrulama kuralları XLSX dosyasında kaydedilir ve Excel veya uyumlu bir okuyucu tarafından uygulanır. kütüphane değerler programlı olarak ayarlandığında çalışma saatinde doğrulanma kısıtlamalarını değerlendirmez.

See Also

 Türkçe