TXLSXDataValidations manages Excel input constraints for TXLSXWorksheet.DataValidations and each rule is a TXLSXDataValidation
Declarations
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);
Rule medlemmar
| Range and ValidationType | Målceller och valideringstypen heltal, decimal, lista, datum, tid, textlängd eller anpassad |
| Op, Formula1 and Formula2 | Comparison operator and one or two criteria expressions |
| AllowBlank | Allows an empty value while retaining the validation rule |
| PromptTitle and Prompt | Input message shown when a target cell is selected |
| ErrorTitle, ErrorMessage and ErrorStyle | Invalid-entry alert and its stop, warning or information icon |
| ShowDropDown | Controls whether a list validation displays its selection arrow |
| ImeMode | OOXML IME input mode for supported CJK clients |
Måloområden för regler
Från och med 2.384.76 accepterar bladlokala mål enskilda celler, cellrektanglar, hela kolumner som $B:$D och hela rader som $5:$8; omvända ändpunkter normaliseras, och mellanslag, tabbar eller radbrytningar skiljer flera områden åt
Absoluta och blandade referenser behåller sin ursprungliga Range -text; matchningen använder rad 1 till 1048576 och kolumn A till XFD, hoppar över felformaterade eller utanför rutnätet liggande områden och låter giltiga syskonområden förbli aktiva utan att kasta något nytt setter-undantag
Bladkvalificerade och externa referenser är inte måloområden; varje regel tillhör sitt arbetsblad, och dollartecken får bara förekomma i vanliga A1-referenspositioner
Regeluppslag, borttagning av celler och intervall, validering av enskilda celler och granskning av lagrad cellvalidering använder samma målgeometri; måltolkningen ändrar inte stödet för listkällformler
Från och med 2.384.77 omformar rad- och kolumnredigeringar även regelmål som täcker en hel axel inom arbetsbladets rutnät; en utsträckning som omfattar varje rad eller kolumn förblir fullständig när den axeln redigeras, medan redigeringar på den andra axeln flyttar, krymper eller tar bort målet
Kloning av intervall behåller kontraktet om full täckning: varenda målområde måste rymmas inom källrektangeln innan regeln kopieras, och enbart partiell överlappning kopierar inte en regel; mål som täcker en hel axel kan klonas från en hel-rad- eller hel-kolumn-källa när destinationen stannar inom rutnätet
Mål som täcker en hel axel förblir en regel vid redigeringar, med formeln justerad från sitt första överlevande ankare; detta utökar inte det befintliga ODS-stödet för interoperabilitet med anpassade booleska eller skalärformler
Exempel
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;
ODS-omfattning
ODS-exporten härleder en giltig basadress för första cellen från det första stödda målområdet, inklusive hela rader och kolumner; felformaterade inledande områden blir inte basadresser
Export av anpassad boolesk validering stöds fortfarande inte, och skalära tröskelformler behåller sina befintliga formelsyntaxbegränsningar; rättningen av målområden upprättar inte extern interoperabilitet för relativa valideringsformler
Se även