Cara Bekerja dengan Validasi Data di .NET

Cara Bekerja dengan Validasi Data di .NET

Aspose.Cells FOSS for .NET memungkinkan Anda menambahkan aturan validasi data ke rentang sel melalui Worksheet.Validations (sebuah ValidationCollection). Panggil Add(CellArea) untuk membuat objek Validation dan atur Type‑nya menggunakan ValidationType. Tipe yang didukung meliputi List, Decimal, dan Custom. Instal dengan dotnet add package Aspose.Cells_FOSS.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

dotnet add package Aspose.Cells_FOSS

Langkah 2: Impor Namespace

using Aspose.Cells_FOSS;

Langkah 3: Tambahkan Validasi Daftar Dropdown

Buat sebuah CellArea dengan CellArea.CreateCellArea(), tambahkan ke Worksheet.Validations, dan atur ValidationType.List dengan daftar yang dipisahkan koma di Formula1.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Dropdown list for A1:A10
var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,In Progress,Closed\"";
listVal.InCellDropDown = true;
listVal.IgnoreBlank = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Choose a status from the dropdown";

wb.Save("list-validation.xlsx");
Console.WriteLine("List validation added.");

Langkah 4: Tambahkan Validasi Rentang Numerik

Gunakan ValidationType.Decimal dengan OperatorType.Between dan Formula1/Formula2 untuk membatasi input numerik.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Decimal range validation for B1:B10 — allow 0 to 100
var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ErrorTitle = "Out of Range";
numVal.ErrorMessage = "Please enter a number between 0 and 100.";
numVal.ShowError = true;
numVal.IgnoreBlank = true;

wb.Save("decimal-validation.xlsx");
Console.WriteLine("Decimal validation added.");

Langkah 5: Gabungkan Beberapa Validasi pada Lembar yang Sama

Anda dapat menambahkan sejumlah validasi ke lembar yang sama dengan memanggil Validations.Add() beberapa kali, masing-masing dengan CellArea yang berbeda.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// List validation for column A (status)
var statusVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A2", "A100"))];
statusVal.Type = ValidationType.List;
statusVal.Formula1 = "\"New,Open,Closed\"";
statusVal.InCellDropDown = true;

// Decimal validation for column B (score)
var scoreVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B2", "B100"))];
scoreVal.Type = ValidationType.Decimal;
scoreVal.Operator = OperatorType.Between;
scoreVal.Formula1 = "0";
scoreVal.Formula2 = "10";
scoreVal.ShowError = true;

wb.Save("combined-validation.xlsx");
Console.WriteLine("Combined validations added to sheet.");

Masalah Umum dan Solusi

Dropdown tidak muncul di Excel setelah disimpan.
Pastikan InCellDropDown = true diatur pada objek Validation sebelum menyimpan. Dropdown hanya terlihat di Excel ketika flag ini true dan ValidationType.List digunakan.

Validasi memungkinkan nilai di luar rentang yang ditentukan.
Validasi ditegakkan oleh Excel, bukan oleh perpustakaan. Menetapkan aturan validasi tidak mencegah perpustakaan itu sendiri menulis nilai apa pun ke sel. Validasi diterapkan ketika pengguna memasukkan data di Excel.

Formula1 untuk validasi daftar muncul sebagai #NAME? di Excel. Untuk daftar dipisahkan koma secara inline, bungkus string dengan tanda kutip yang di‑escape: Formula1 = "\"Option1,Option2,Option3\"". Tanpa tanda kutip internal, Excel memperlakukan nilai tersebut sebagai formula referensi sel.

OperatorType.Between tidak diterapkan dengan benar. Pastikan Formula1 (minimum) dan Formula2 (maximum) diatur sebagai string. Kehilangan Formula2 untuk Between membuat batas atas tidak terdefinisi.

Pertanyaan yang Sering Diajukan

Apakah saya dapat memvalidasi terhadap rentang sel (misalnya rentang bernama)?

Set Formula1 ke referensi rentang sel seperti "Sheet2!$A$1:$A$10". Nilai dalam rentang tersebut akan digunakan sebagai sumber daftar dropdown.

Apakah validasi mencegah library menulis nilai yang tidak valid?

Tidak. Aturan validasi ditegakkan oleh Excel ketika pengguna memasukkan data. Pustaka Aspose.Cells FOSS tidak menegakkan validasi ketika Anda memanggil Cell.PutValue() secara programatis.

Bagaimana cara menghapus aturan validasi?

Akses aturan melalui Worksheet.Validations[index] dan gunakan operasi ValidationCollection untuk mengelola aturan. Alternatifnya, buat model workbook baru tanpa aturan yang tidak diinginkan.

Berapa jumlah maksimum validasi per lembar?

Format XLSX mendukung hingga 65.530 aturan validasi per lembar kerja.

Lihat Juga

 Bahasa Indonesia