Cara Menambahkan Validasi Data ke Spreadsheet dalam C++

Cara Menambahkan Validasi Data ke Spreadsheet dalam C++

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, dan WorkbookValidator kelas membentuk API validasi.

Panduan Langkah-Langkah

Langkah 1: Siapkan Bangunan

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)

Langkah 2: Sertakan Judul yang Diperlukan

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

Langkah 3: Akses koleksi Validasi

Dapatkan kembali ValidationCollection dari lembar kerja:

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

Langkah 4: Tambahkan Aturan Validasi

Call ValidationCollection::Add() dan mengkonfigurasi yang dikembalikan Validation objek:

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

Langkah 5: Terapkan Aturan untuk kisaran

Menambahkan validasi ke sebuah CellArea menggunakan Validation::AddArea:

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

Langkah 6: Simpan Buku Kerja

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

Langkah 7: Jalankan Validasi Pra-Penyimpanan (Optional)

Call WorkbookValidator::ValidateForSave selama pengembangan untuk menangkap masalah model sebelum menyimpan:

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

Masalah dan Fixes Umum

Validasi tidak terlihat di file yang disimpan Ensure Validation::AddArea(area) disebut setelah mengkonfigurasi aturan. Aturan tanpa area terkait tidak diserialisasi.

Daftar gulung tidak ditampilkan Set (set) v.SetInCellDropDown(true) dan set v.SetType(ValidationType::List) dengan: SetFormula1 menunjuk ke rentang atau nilai yang dipisahkan koma.

Daerah validasi yang tumpang tindih Penggunaan ValidationCollection::AreasOverlap untuk memeriksa konflik sebelum menambahkan aturan baru. Aturan tumpang tindih dapat menghasilkan perilaku yang tidak terduga di Excel.

Pesan input tidak muncul Pastikan keduanya SetShowInput(true) dan (b) SetInputMessage("...") adalah set. Sebuah string pesan kosong menekan input prompt bahkan jika SetShowInput(true) disebut.

ValidateForSave laporan kesalahan Ulasan ketidakkonsistenan yang dilaporkan. Penyebab umum termasuk formula batas hilang untuk validasi jenis kisaran dan koordinat area sel tidak sah.

Pertanyaan yang sering ditanya

Jenis validasi apa yang didukung?

Pengelolaan ValidationType Daftar ini mencakup: WholeNumber, Decimal, List, Date, TextLength, Custom, dan Any.

Bisakah saya menghapus aturan validasi dari rentang?

Ya, gunakan. ValidationCollection::RemoveArea(area) untuk menghapus aturan dari rentang, atau RemoveACell(row, col) untuk satu sel.

Bisakah saya menerapkan aturan validasi yang sama untuk beberapa rentang?

Ya, telepon. Validation::AddArea(area) beberapa kali pada yang sama Validation keberatan untuk menerapkannya pada kisaran tambahan.

Apa gaya peringatan yang tersedia?

ValidationAlertType meliputi: Stop (blok entri yang tidak valid), Warning (mengatakan tetapi mengizinkan masuk), dan Information (hanya untuk informasi).

Apakah validasi bekerja pada runtime, atau hanya di Excel?

Aturan validasi data disimpan dalam file XLSX dan diberlakukan oleh Excel atau pembaca yang kompatibel. Perpustakaan tidak mengevaluasi kendala validation pada runtime ketika nilai ditetapkan secara programatis.

See Also

 Bahasa Indonesia