TXLSXDataValidations gerencia restrições de entrada do Excel para TXLSXWorksheet.DataValidations, e cada regra é uma TXLSXDataValidation
Declarações
function Add(const ARange: WideString; AType: TXLSXDataValidationType; AOp: TXLSXDvOperator; const AFormula1: WideString): Integer;
function Add(const ARange: WideString; AType: TXLSXDataValidationType; AOp: TXLSXDvOperator; const AFormula1, AFormula2: WideString): Integer;
function AddList(const ARange, AItems: WideString): Integer;
procedure TXLSXDataValidation.SetPrompt(const ATitle, AText: WideString);
procedure TXLSXDataValidation.SetError(const ATitle, AText: WideString; AStyle: TXLSXDvErrorStyle = xlsxDvErrStop);
Membros da regra
| Range and ValidationType | Células de destino e o tipo de validação de número inteiro, decimal, lista, data, hora, comprimento de texto ou personalizado |
| Op, Formula1 and Formula2 | Operador de comparação e uma ou duas expressões de critério |
| AllowBlank | Permite um valor vazio mantendo a regra de validação |
| PromptTitle and Prompt | Mensagem de entrada mostrada quando uma célula de destino é selecionada |
| ErrorTitle, ErrorMessage and ErrorStyle | Alerta de entrada inválida e seu ícone de parada, aviso ou informação |
| ShowDropDown | Controla se uma validação de lista exibe sua seta de seleção |
| ImeMode | Modo de entrada IME OOXML para clientes CJK compatíveis |
Intervalos de alvo das regras
A partir de 2.384.76, os alvos locais da planilha aceitam células individuais, retângulos de células, colunas inteiras como $B:$D e linhas inteiras como $5:$8; extremos invertidos são normalizados, e espaços, tabulações ou quebras de linha separam múltiplas áreas
Referências absolutas e mistas mantêm o texto original de Range; a correspondência usa linhas de 1 a 1048576 e colunas de A a XFD, pula áreas malformadas ou fora da grade, e mantém as áreas irmãs válidas ativas sem lançar uma nova exceção no setter
Referências com qualificação de planilha e referências externas não são áreas de alvo; cada regra pertence à sua planilha, e os cifrões devem aparecer nas posições comuns de referência A1
A busca de regras, a exclusão de células e intervalos, a validação de célula única e as auditorias de validação de células armazenadas usam a mesma geometria de alvos; a análise dos alvos não muda o suporte a fórmulas de origem de lista
A partir de 2.384.77, edições de linhas e colunas também transformam alvos de regra de eixo inteiro dentro da grade da planilha; uma extensão que cobre toda linha ou coluna permanece completa quando esse eixo é editado, enquanto edições no outro eixo movem, encolhem ou removem o alvo
A clonagem de intervalos mantém o contrato de cobertura completa: toda área de alvo precisa caber dentro do retângulo de origem antes de a regra ser copiada, e interseção parcial sozinha não copia uma regra; alvos de eixo inteiro podem ser clonados de uma origem de linha inteira ou coluna inteira quando o destino fica dentro da grade
Alvos de validação de eixo inteiro permanecem uma única regra durante edições, com a fórmula ajustada a partir de sua primeira âncora sobrevivente; isso não estende o suporte existente de interoperabilidade ODS para booleanos personalizados ou fórmulas escalares
Exemplo
var Index: Integer;
begin
Index := Sheet.DataValidations.AddList('D2:D100', 'New,Active,Closed');
Sheet.DataValidations[Index].SetPrompt('Status', 'Select a permitted status');
Sheet.DataValidations[Index].SetError('Invalid status', 'Choose a value from the list');
end;
Escopo ODS
A exportação ODS deriva um endereço base válido de primeira célula a partir da primeira área de alvo suportada, incluindo linhas e colunas inteiras; áreas iniciais malformadas não se tornam endereços base
A exportação de validação booleana personalizada permanece sem suporte, e fórmulas escalares de limiar mantêm suas limitações existentes de sintaxe de fórmula; a correção dos intervalos de alvo não estabelece interoperabilidade externa para fórmulas de validação relativas
Veja também