Cara Bekerja dengan Pengesahan Data dalam .NET

Cara Bekerja dengan Pengesahan Data dalam .NET

Aspose.Cells FOSS for .NET membolehkan anda menambah peraturan pengesahan data kepada julat sel melalui Worksheet.Validations (sebuah ValidationCollection). Panggil Add(CellArea) untuk membuat objek Validation dan tetapkan Typenya menggunakan ValidationType. Jenis yang disokong termasuk List, Decimal, dan Custom. Pasang dengan dotnet add package Aspose.Cells_FOSS.

Panduan Langkah demi Langkah

Langkah 1: Pasang Pakej

dotnet add package Aspose.Cells_FOSS

Langkah 2: Import Ruang Nama

using Aspose.Cells_FOSS;

Langkah 3: Tambah Pengesahan Senarai Dropdown

Buat CellArea dengan CellArea.CreateCellArea(), tambahkan ke Worksheet.Validations, dan tetapkan ValidationType.List dengan senarai berasingan koma dalam 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: Tambah Pengesahan Julat Numerik

Gunakan ValidationType.Decimal dengan OperatorType.Between dan Formula1/Formula2 untuk mengehadkan input berangka.

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 Pelbagai Pengesahan pada Lembaran yang Sama

Anda boleh menambah sebarang bilangan pengesahan ke helaian yang sama dengan memanggil Validations.Add() berulang kali, setiap satu dengan CellArea yang berbeza.

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 Biasa dan Penyelesaian

Dropdown tidak muncul dalam Excel selepas disimpan.
Pastikan InCellDropDown = true ditetapkan pada objek Validation sebelum menyimpan. Dropdown hanya kelihatan dalam Excel apabila bendera ini true dan ValidationType.List digunakan.

Pengesahan membenarkan nilai di luar julat yang ditetapkan.
Pengesahan dikuatkuasakan oleh Excel, bukan oleh perpustakaan. Menetapkan peraturan pengesahan tidak menghalang perpustakaan itu sendiri daripada menulis sebarang nilai ke dalam sel. Pengesahan diterapkan apabila pengguna memasukkan data dalam Excel.

Formula1 untuk pengesahan senarai dipaparkan sebagai #NAME? dalam Excel.
Untuk senarai berasingan koma secara dalam baris, balut rentetan dalam petikan terescape: Formula1 = "\"Option1,Option2,Option3\"". Tanpa petikan dalaman, Excel menganggap nilai tersebut sebagai formula rujukan sel.

OperatorType.Between tidak diterapkan dengan betul. Pastikan kedua Formula1 (minimum) dan Formula2 (maksimum) ditetapkan sebagai rentetan. Kehilangan Formula2 untuk Between meninggalkan had atas tidak ditakrifkan.

Soalan Lazim

Bolehkah saya mengesahkan terhadap julat sel (contohnya julat bernama)?

Tetapkan Formula1 kepada rujukan julat sel seperti "Sheet2!$A$1:$A$10". Nilai dalam julat itu akan digunakan sebagai sumber senarai lungsur.

Adakah pengesahan menghalang perpustakaan daripada menulis nilai yang tidak sah?

Tidak. Peraturan pengesahan dikuatkuasakan oleh Excel apabila pengguna memasukkan data. Pustaka Aspose.Cells FOSS tidak menguatkuasakan pengesahan apabila anda memanggil Cell.PutValue() secara programatik.

Bagaimana saya mengeluarkan peraturan pengesahan?

Akses peraturan melalui Worksheet.Validations[index] dan gunakan operasi ValidationCollection untuk mengurus peraturan. Sebagai alternatif, buat model buku kerja baru tanpa peraturan yang tidak diingini.

Berapa bilangan maksimum validasi per helaian?

Format XLSX menyokong sehingga 65,530 peraturan pengesahan setiap helaian kerja.

Lihat Juga

 Bahasa Melayu