Bekerja dengan Validasi Data

Bekerja dengan Validasi Data

Bekerja dengan Validasi Data

Aspose.Cells FOSS for C++ supports adding cell-level data validation rules to worksheets via the Validation dan (b) ValidationCollection kelas. WorkbookValidator kelas memberikan pemeriksaan konsistensi pra-memesan.


Menambahkan Aturan Validasi

Akses koleksi validasi untuk lembar kerja dan tambahkan aturan baru menggunakan ValidationCollection::Add(). Tetapkan tipe, rumus dan area target pada yang dikembalikan Validation objek:

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

Jenis Validasi

Pengelolaan ValidationType Enumerasi mendefinisikan jenis batasan yang dapat diterapkan:

ValidationTypeDescription
WholeNumberKeterbatasan nilai bulat
DecimalKeterbatasan titik mengambang
ListDaftar gulung dari rumus atau kisaran
DateBatasan nilai tanggal
TextLengthBatasan panjang string
CustomAturan adat berdasarkan rumus

Gaya peringatan

Pengelolaan ValidationAlertType Enumerasi mengontrol perilaku yang ditampilkan ketika validasi gagal:

AlertStyleBehavior
StopMemblokir entri dan menampilkan dialog kesalahan
WarningMenampilkan peringatan; pengguna dapat menerima atau menolak
InformationMenampilkan informasi tooltip

Atur gaya peringatan dengan Validation::SetAlertStyle(ValidationAlertType).


Meminta Validasi di Sel

Penggunaan ValidationCollection::GetValidationInCell(row, col) untuk menemukan aturan validasi yang berlaku pada sel tertentu. Kembalikan nullptr jika tidak ada aturan yang berlaku.


Menghapus Aturan Validasi

Menghapus validasi dari sel atau area rentang tertentu:

CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)

Validasi Buku Kerja Pra-Simpan

Call WorkbookValidator::ValidateForSave untuk menjalankan pemeriksaan konsistensi pada model buku kerja sebelum menyimpan. Ini disebut secara otomatis oleh Workbook::Save tetapi dapat digunakan secara independen selama pengembangan:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

Tips dan Praktik Terbaik

  • Selalu tetapkan keduanya. SetFormula1 dan (b) SetFormula2 untuk validasi jenis rentang (WholeNumber, Decimal, Date) untuk menentukan batas bawah dan atas.
  • Penggunaan SetIgnoreBlank(true) untuk memungkinkan sel kosong melewati validasi tanpa memicu kesalahan.
  • Call ValidationCollection::AreasOverlap sebelum menambahkan aturan baru untuk memeriksa apakah area validasi tumpang tindih pada lembar yang sama.
  • WorkbookValidator::ValidateForSave disebut secara internal pada save; memanggilnya selama pengembangan untuk menangkap masalah lebih awal.

Masalah Umum

IssueCausePerbaiki
Validasi tidak diterapkan pada selDaerah yang belum ditambahkanCall Validation::AddArea(area) dengan rentang target
Tidak muncul drop-downSetInCellDropDown(false)Set (set) SetInCellDropDown(true) untuk validasi daftar
Peraturan tumpang tindihDua aturan mencakup sel yang samaPenggunaan AreasOverlap untuk mendeteksi dan menyelesaikan konflik
ValidateForSave gagalInkonsistensi modelMemperiksa dan memperbaiki ketidakkonsistenan yang dilaporkan sebelum menyimpan

Ringkasan Referensi API

Kelas/MetodeDescription
ValidationCollection::Add()Tambahkan aturan validasi kosong baru
ValidationCollection::GetValidationInCell(row, col)Menemukan validasi untuk sel
ValidationCollection::RemoveArea(area)Menghapus validasi dari kisaran
ValidationCollection::RemoveACell(row, col)Menghapus validasi dari sel
ValidationCollection::AreasOverlapPeriksa apakah area validasi tumpang tindih
Validation::SetType(ValidationType)Tetapkan jenis validasi
Validation::SetFormula1(expr)Tetapkan batas bawah atau sumber daftar
Validation::SetFormula2(expr)Tetapkan batas atas
Validation::AddArea(area)Terapkan aturan pada kisaran
Validation::RemoveArea(area)Menghapus aturan dari kisaran
Validation::SetAlertStyle(style)Atur stop/peringatan/informasi perilaku
WorkbookValidator::ValidateForSavePemeriksaan konsistensi sebelum menyimpan

See Also

 Bahasa Indonesia