O ExcelValidator é um serviço desenvolvido em .NET 9 que permite validar arquivos Excel (.xlsx
) com base em um conjunto flexível de regras. O serviço processa o arquivo Excel, aplica as regras de validação definidas para cada coluna e retorna o arquivo modificado, destacando as células inválidas com fundo rosa claro e comentários explicativos.
- O serviço recebe um arquivo Excel codificado em Base64 e uma lista de regras de validação.
- Cada regra é associada a uma coluna específica do Excel.
- Para cada célula, todas as regras definidas para a respectiva coluna são aplicadas.
- Se uma célula não atender a uma ou mais regras, ela é destacada e recebe um comentário com as mensagens de erro.
- O arquivo Excel validado é retornado também em Base64.
A requisição deve conter:
Base64Excel
: string com o arquivo Excel codificado em Base64.Rules
: lista de regras de validação, onde cada regra possui:-
ColumnName
: nome da coluna a ser validada (deve coincidir com o cabeçalho do Excel). -
RuleType
: tipo da regra (ex:Required
,Regex
,MaxLength
,MinLength
,Numeric
, etc). -
RuleValue
: valor de referência para a regra (quando aplicável). -
ErrorMessage
: mensagem de erro personalizada.
-
var request = new ValidationRequest
{
Base64Excel = "<arquivo_excel_em_base64>",
Rules = new List<ValidationRule>
{
new ValidationRule
{
ColumnName = "Email",
RuleType = "Required",
ErrorMessage = "O e-mail é obrigatório."
},
new ValidationRule
{
ColumnName = "Email",
RuleType = "Regex",
RuleValue = @"^[\w.-]+@[\w.-]+\.\w+$",
ErrorMessage = "Formato de e-mail inválido."
},
new ValidationRule
{
ColumnName = "Idade",
RuleType = "NumericGTZero",
ErrorMessage = "A idade deve ser um número maior que zero."
},
new ValidationRule
{
ColumnName = "Nome",
RuleType = "MaxLength",
RuleValue = "50",
ErrorMessage = "O nome deve ter no máximo 50 caracteres."
}
}
};
Você pode definir múltiplas regras para a mesma coluna, e todas serão aplicadas. Caso uma célula viole mais de uma regra, todas as mensagens de erro serão exibidas no comentário da célula.
Required
: valor obrigatório (não pode ser vazio).Regex
: validação por expressão regular.MaxLength
: tamanho máximo do texto.MinLength
: tamanho mínimo do texto.Length
: tamanho exato do texto.GTIN
: validação de código GTIN/EAN.Numeric
: valor numérico.NumericGTZero
: valor numérico maior que zero.
- Adicione a referência ao pacote ClosedXML.
- Importe e utilize o serviço
ExcelValidationService
em seu projeto. - Envie a requisição conforme o exemplo acima.
- O resultado será uma string Base64 do arquivo Excel validado, pronto para download ou exibição.