Como trabalhar com a validação de dados em .NET

Como trabalhar com a validação de dados em .NET

Aspose.Cells FOSS for .NET enables you to add data validation rules to cell ranges through Worksheet.Validations (a) ValidationCollection) Chamada Add(CellArea) para criar um Validation objecto e definir o seu Type Utilização de: ValidationType.Os tipos apoiados incluem: List, Decimal, e Custom.Instalar com: dotnet add package Aspose.Cells_FOSS.

Guia passo a passo

Passo 1: Instalar o pacote

dotnet add package Aspose.Cells_FOSS

Passo 2: Importar o espaço de nomes

using Aspose.Cells_FOSS;

Passo 3: Adicionar uma lista de validação em caixa suspensa

Criar um CellArea com: CellArea.CreateCellArea(), adicione-o a: Worksheet.Validations, e definido ValidationType.List com uma lista separada por vírgulas em: 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.");

Passo 4: Adicionar uma validação de intervalo numérico

Utilização: ValidationType.Decimal com: OperatorType.Between e a) Formula1/Formula2 para limitar a entrada numérica.

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

Passo 5: Combinar múltiplas validações na mesma folha

Pode adicionar qualquer número de validações para a mesma folha, chamando Validations.Add() várias vezes, cada uma com um número diferente de CellArea.

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

Problemas comuns e soluções

O menu suspenso não aparece no Excel após a salvação. Assegurar a InCellDropDown = true é definido no ponto de vista da Validation Objeto antes de salvar. O menu suspenso só é visível no Excel quando esta bandeira está true e a) ValidationType.List é utilizado.

A validação permite valores fora do intervalo definido. A validação é aplicada pelo Excel, não pela biblioteca. Configurar regras de validações não impede que a própria biblioteca escreva qualquer valor na célula. A valididade é usada quando um usuário insere dados no Excel.

Formula1 para uma lista de validação, indica como: #NAME? no Excel. Para uma lista em linha separada por vírgulas, envolva a cadeia de palavras com citações escapadas: Formula1 = "\"Option1,Option2,Option3\"".Sem as citações internas, o Excel trata o valor como uma fórmula de referência de célula.

OperatorType.Between não aplicada corretamente. Assegurar que ambos os Formula1 (mínimo) e Formula2 (máximo) são definidos como cadeias de caracteres. Falta Formula2 para o Between deixa o limite superior indefinido.

Perguntas Frequentes

Posso validar contra um intervalo de células (por exemplo, umintervalo com nome)?

Set (s) Formula1 a uma referência de um intervalo de células, como: "Sheet2!$A$1:$A$10".Os valores nesse intervalo serão utilizados como fonte da lista suspensa.

A validação impede que a biblioteca escreva valores inválidos?

Não. As regras de validação são aplicadas pelo Excel quando um usuário insere dados. A biblioteca Aspose.Cells FOSS não aplica a validações ao chamar o computador para fazer uma chamada. Cell.PutValue() de forma programática.

Como eu removo uma regra de validação?

Acesse a regra através do Worksheet.Validations[index] e utilização ValidationCollection Como alternativa, crie um novo modelo de livro sem as regras indesejadas.

Qual é o número máximo de validações por folha?

O formato XLSX suporta até 65.530 regras de validação por folha de cálculo.

Ver também:

 Português