
A validação de dados no Excel garante que os usuários insiram apenas dados válidos nas planilhas. Ao projetar formulários, coletar dados ou construir modelos financeiros, as validações de dados ajudam a manter a estrutura e minimizar erros dos usuários. Neste post, vamos mostrar como aplicar a validação de dados no Excel usando C# programaticamente.
Este artigo aborda os seguintes tópicos:
- Biblioteca de validação de dados do Excel em C#
- Crie uma lista suspensa no Excel usando C#
- Restringir a entrada de números inteiros no Excel usando C#
- Validação de intervalo de datas no Excel usando C#
- Validação de dados baseada em fórmula no Excel
- Lide com dados inválidos com alertas de erro no Excel
- Recursos Gratuitos
Biblioteca de Validação de Dados do Excel em C#
A validação de dados garante que os usuários insiram entradas válidas e esperadas em planilhas do Excel. Usaremos a Aspose.Cells for .NET API para adicionar diferentes tipos de validação de dados no Excel. Ela fornece uma abordagem poderosa e flexível para definir regras, como listas suspensas, intervalos numéricos, limites de datas e fórmulas personalizadas, tudo isso sem a necessidade do Microsoft Excel.
Instale o Aspose.Cells for .NET via NuGet pacote em seu projeto:
PM> Install-Package Aspose.Cells
Então importe o namespace relevante:
using Aspose.Cells;
Crie Validação de Lista Suspensa no Excel usando C#
Você pode restringir a entrada do usuário a um conjunto definido de opções criando uma validação de lista suspensa no Excel. Isso garante valores consistentes, especialmente úteis em formulários ou modelos.
Siga estes passos para criar uma lista suspensa no Excel usando C#:
- Crie um novo objeto
Workbook
. - Acesse a primeira
worksheet
usando seu índice. - Defina o alvo
CellArea
para validação. - Acesse a coleção de Validações da planilha.
- Adicione uma nova validação usando o
Add()
método. - Defina o tipo de validação como
ValidationType.List
. - Defina as opções do menu suspenso usando a propriedade
Formula1
(separadas por vírgula). - Adicione a área da célula à validação usando o
AddArea()
método. - Salve a pasta de trabalho para gerar o arquivo Excel validado.
Aqui está o exemplo de código C# que implementa essas etapas:
// Crie um novo workbook do Excel
var workbook = new Workbook();
// Acesse a primeira planilha no livro de trabalho
var sheet = workbook.Worksheets[0];
// Defina a área da célula alvo para validação (A1 neste caso)
var area = new CellArea
{
StartRow = 0, // Row index starts from 0 (Row 1)
EndRow = 0, // Apply to a single row
StartColumn = 0, // Column index starts from 0 (Column A)
EndColumn = 0 // Apply to a single column
};
// Acesse a coleção de validações da planilha
var validations = sheet.Validations;
// Adicione uma nova entrada de validação para a área de células especificada.
int index = validations.Add(area);
var validation = validations[index];
// Defina o tipo de validação como uma lista suspensa
validation.Type = ValidationType.List;
// Defina os itens permitidos da lista (valores separados por vírgula)
validation.Formula1 = "Red,Green,Blue";
// Defina a mensagem de entrada exibida quando a célula é selecionada
validation.InputMessage = "Select a color from the list.";
// Defina a mensagem de erro exibida se dados inválidos forem inseridos.
validation.ErrorMessage = "Only Red, Green, or Blue are allowed.";
// Ativar a exibição da mensagem de erro
validation.ShowError = true;
// Aplique a área definida à validação
validation.AddArea(area);
// Salve a pasta de trabalho no caminho de arquivo especificado.
workbook.Save("dropdown-validation.xlsx");

Criando uma Validação de Lista Suspensa no Excel Usando C#
Restringir a Números Inteiros no Excel usando C#
A validação de números inteiros garante que os usuários insiram apenas valores inteiros válidos no Excel, o que é ideal para campos de quantidade, entradas de idade ou planilhas de orçamento onde decimais ou texto não são aceitáveis.
Vamos dizer que você queira restringir uma célula para aceitar apenas números entre 1 e 100. Sem esta regra, os usuários poderiam acidentalmente inserir entradas inválidas como 150 ou abc, causando erros de cálculo ou problemas de lógica em sua planilha.
Com Aspose.Cells for .NET, você pode impor essa regra de validação programaticamente em C# sem precisar configurá-la manualmente no Excel.
O seguinte trecho de código mostra como restringir os usuários a inserir apenas os valores permitidos:
using Aspose.Cells;
// Criar uma nova pasta de trabalho do Excel
var workbook = new Workbook();
// Acesse a primeira planilha no livro de trabalho
var sheet = workbook.Worksheets[0];
// Defina a área da célula alvo — B2 (linha 1, coluna 1)
var area = new CellArea
{
StartRow = 1,
EndRow = 1,
StartColumn = 1,
EndColumn = 1
};
// Acesse a coleção de validações da planilha
var validations = sheet.Validations;
// Adicione uma nova validação e obtenha seu índice.
int index = validations.Add(area);
// Recupere o objeto de validação usando o índice
var validation = validations[index];
// Defina o tipo de validação como NúmeroInteiro (apenas inteiros permitidos)
validation.Type = ValidationType.WholeNumber;
// Defina o operador como Entre
validation.Operator = OperatorType.Between;
// Defina o intervalo válido: 1 a 100
validation.Formula1 = "1";
validation.Formula2 = "100";
// Defina a mensagem de erro que aparece quando dados inválidos são inseridos
validation.ErrorMessage = "Enter a number between 1 and 100.";
// Ative a exibição do alerta de erro quando a validação falhar.
validation.ShowError = true;
// (Optional if not using Add(area) earlier) Adicione a área à validação explicitamente
validation.AddArea(area);
// Salve a pasta de trabalho em um arquivo
workbook.Save("numbers-validation.xlsx");

Restringir a Números Inteiros no Excel usando C#
Aplique a Validação de Intervalo de Datas no Excel usando C#
A validação de datas ajuda você a garantir que os usuários só insiram datas válidas. É útil em ferramentas de planejamento, registros de presença, planilhas de reservas e em qualquer cenário onde você precise de datas dentro de um intervalo específico.
Por exemplo, imagine que você está criando um modelo de agendamento de projetos e deseja restringir os usuários a inserir datas apenas dentro do ano de 2024. Permitir que os usuários insiram uma data fora desse intervalo (como 2023 ou 2025) pode quebrar fórmulas ou criar registros inconsistentes.
Aspose.Cells for .NET torna fácil aplicar validações de data a células específicas, para que os usuários possam inserir apenas datas que atendam aos seus critérios.
O seguinte trecho de código demonstra como garantir que os usuários só possam inserir datas entre 1º de janeiro de 2024 e 31 de dezembro de 2024. Qualquer coisa fora da faixa acionará um erro, ajudando você a manter dados mais limpos e precisos em sua planilha.
using Aspose.Cells;
// Crie uma nova pasta de trabalho do Excel
var workbook = new Workbook();
// Acesse a primeira planilha no livro de trabalho
var sheet = workbook.Worksheets[0];
// Defina a área da célula para aplicar a validação — C3 (linha 2, coluna 2)
var area = new CellArea
{
StartRow = 2,
EndRow = 2,
StartColumn = 2,
EndColumn = 2
};
// Acesse a coleção de validações da planilha
var validations = sheet.Validations;
// Adicione uma nova validação e obtenha seu índice
int index = validations.Add(area);
// Recupere o objeto de validação
var validation = validations[index];
// Defina o tipo de validação como Data
validation.Type = ValidationType.Date;
// Defina o operador como Entre (datas de início e fim)
validation.Operator = OperatorType.Between;
// Especifique o intervalo de datas válido: 1 de janeiro de 2024 a 31 de dezembro de 2024
validation.Formula1 = "2024-01-01";
validation.Formula2 = "2024-12-31";
// Defina a mensagem de erro a ser exibida quando a data estiver fora do intervalo.
validation.ErrorMessage = "Date must be within the year 2024.";
// Habilitar a exibição do alerta de erro
validation.ShowError = true;
// Reaplicar a área para garantir que a validação esteja vinculada corretamente
validation.AddArea(area);
// Salve a pasta de trabalho no caminho especificado
workbook.Save("date-validation.xlsx");
Use Formula-Based Validation Validation in Excel Using C#
Às vezes, menus suspensos simples ou faixas de números fixas não são suficientes, especialmente quando suas regras dependem dos valores em outras células. Com a validação baseada em fórmulas, você pode definir regras personalizadas usando fórmulas no estilo do Excel. Essas regras podem referenciar outras células e avaliar dinamicamente se a entrada é válida. Por exemplo, você pode querer garantir que o valor na célula B1 seja sempre maior que o valor na A1. É um cenário comum em comparações de preços, planilhas de pontuação ou sequências de datas.
Aspose.Cells for .NET suporta totalmente este recurso e permite que você defina validação usando fórmulas personalizadas, assim como no Excel.
O seguinte exemplo de código mostra como aplicar validações baseadas em fórmulas no Excel usando C#.
using Aspose.Cells;
// Crie uma nova pasta de trabalho do Excel
var workbook = new Workbook();
// Acesse a primeira planilha na pasta de trabalho
var sheet = workbook.Worksheets[0];
// Defina a área da célula para validação — B1 (linha 0, coluna 1)
var area = new CellArea
{
StartRow = 0,
EndRow = 0,
StartColumn = 1,
EndColumn = 1
};
// Acesse a coleção de validações de planilhas
var validations = sheet.Validations;
// Adicione uma nova validação à coleção e obtenha seu índice.
int index = validations.Add(area);
// Recupere o objeto de validação pelo índice
var validation = validations[index];
// Defina o tipo de validação como Personalizado (usado para regras baseadas em fórmulas)
validation.Type = ValidationType.Custom;
// Defina a fórmula personalizada: B1 deve ser maior que A1
validation.Formula1 = "=B1>A1";
// Defina a mensagem de erro exibida quando a validação falha.
validation.ErrorMessage = "Value in B1 must be greater than A1.";
// Ativar exibição do alerta de erro em caso de entrada inválida
validation.ShowError = true;
// Adicione a área explicitamente para garantir que ela esteja coberta pela validação.
validation.AddArea(area);
// Salve a pasta de trabalho no caminho de arquivo especificado.
workbook.Save("formula-validation.xlsx");
Configurar Mensagens de Entrada e Erro no Excel Usando C#
Aplicar a validação de dados é apenas parte da solução. Orientar os usuários quando eles inserem dados incorretos é igualmente importante, e é aí que alertas e mensagens personalizadas desempenham um papel fundamental.
Aspose.Cells for .NET permite que você configure mensagens de entrada úteis e alertas de erro que aparecem quando os usuários selecionam uma célula ou inserem dados inválidos. Essas mensagens melhoram a experiência do usuário, reduzem a confusão e tornam seus templates do Excel mais profissionais.
Por exemplo, quando um usuário clica em uma célula, você pode mostrar um tooltip como
`Apenas valores de 1 a 100 são permitidos.”
E se eles enter um valor incorreto, o Excel pode exibir uma caixa de diálogo dizendo:
`Entrada Inválida: Por favor, insira um número entre 1 e 100.”
Você também pode personalizar como o Excel responde a entradas inválidas escolhendo se deve bloquear o usuário completamente (Stop
), permitir que ele prossiga com um aviso (Warning
) ou simplesmente exibir uma mensagem informativa (Information
).
Siga estas etapas para configurar alertas de validação usando C#:
- Após configurar a regra de validação, defina o
InputTitle
e oInputMessage
para mostrar o texto de ajuda quando um usuário selecionar a célula. - Defina o
ErrorTitle
e oErrorMessage
para explicar o que deu errado se a validação falhar. - Escolha um
AlertStyle
— as opções incluemStop
,Warning
eInformation
. - Defina
ShowError
comotrue
para ativar o alerta de validação. - Salve a pasta de trabalho.
Esses alertas tornam sua planilha mais intuitiva e amigável, especialmente ao criar modelos para outros usarem ou reutilizarem com frequência.
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
// Configurar área de validação — aplicar à célula C1
var area = new CellArea
{
StartRow = 0,
EndRow = 0,
StartColumn = 2, // Column C = 2
EndColumn = 2
};
// Adicione validação
int index = sheet.Validations.Add(area);
var validation = sheet.Validations[index];
validation.Type = ValidationType.Custom;
// Esta fórmula sempre avalia como FALSO
validation.Formula1 = "=FALSE";
// Configure mensagens de entrada e erro
validation.InputTitle = "Input Restricted";
validation.InputMessage = "Try entering anything to see the validation.";
validation.ErrorTitle = "Invalid Input";
validation.ErrorMessage = "You triggered this validation error successfully!";
validation.AlertStyle = ValidationAlertType.Stop;
validation.ShowError = true;
validation.ShowInput = true;
// Aplique validação à área
validation.AddArea(area);
// Salve a pasta de trabalho validada
workbook.Save("D:\\Files\\validated_with_alerts.xlsx");
Eles alertas aprimoram a usabilidade e orientam claramente os usuários sobre o que inserir.

Configurar Mensagens de Entrada e Erro no Excel Usando C#
Experimente grátis
Obtenha uma licença temporária gratuita para testar todas as capacidades do Aspose.Cells for .NET sem quaisquer limites de recursos.
Recursos Gratuitos
Explore mais sobre automação e validação do Excel usando esses recursos:
Conclusão
Neste artigo, mostramos como implementar a validação de dados no Excel usando C# com Aspose.Cells for .NET. De listas suspensas a fórmulas personalizadas, você pode criar planilhas inteligentes e à prova de erros sem depender do Excel em si.
Se você tiver alguma dúvida ou feedback, sinta-se à vontade para publicá-los em nosso free support forum.Adoraríamos ajudar!