TXLSXConditionalFormats je kolekce pravidel vystavená přes TXLSXWorksheet.ConditionalFormats a podporuje buňková, vizuální, textová, pořadová a průměrová pravidla
Metody kolekce
function Add(const ARange: WideString; AOp: TXLSXCfOperator; const AFormula1: WideString): Integer;
function AddDataBar(const ARange: WideString; AColor: LongWord; AMinKind: TXLSCfValueKind; const AMinValue: WideString; AMaxKind: TXLSCfValueKind; const AMaxValue: WideString): Integer;
function AddColorScale2(...): Integer;
function AddColorScale3(...): Integer;
function AddIconSet(const ARange: WideString; ASetType: TXLSIconSetType): Integer;
function AddExpression(const ARange, AFormula: WideString): Integer;
function AddTextRule(const ARange: WideString; AKind: TXLSCfKind; const AText: WideString): Integer;
function AddTop10(const ARange: WideString; ARank: Integer; ABottom, APercent: Boolean): Integer;
function AddAboveAverage(const ARange: WideString; AAbove: Boolean): Integer;
function AddSimpleRule(const ARange: WideString; AKind: TXLSCfKind): Integer;
Členové pravidla
| Range, Op, Formula1 and Formula2 | Definují standardní pravidlo porovnání buněk |
| Style | Líný diferenciální formát používaný buňkovými a expression pravidly |
| DataBar, ColorScale and IconSet | Vizuální payloady pro své druhy pravidel |
| Priority and StopIfTrue | Řídí pořadí pravidel v listu a zkratované vyhodnocení |
| Text, Rank, Percent, Bottom and AboveAverage | Parametry textových pravidel, pravidel top/bottom a pravidel průměru |
| TimePeriod | Pásmo relativních dat pro časová pravidla |
Cílové oblasti pravidel
Od 2.384.76 přijímají cíle v rámci listu jednotlivé buňky, obdélníky buněk, celé sloupce jako $B:$D a celé řádky jako $5:$8; obrácené koncové body se normalizují a více oblastí oddělují mezery, tabulátory nebo konce řádků
Absolutní a smíšené reference si zachovávají původní text Range; párování používá řádky 1 až 1048576 a sloupce A až XFD, přeskakuje poškozené oblasti nebo oblasti mimo mřížku a platné sousední oblasti téhož pravidla zůstávají aktivní, aniž by setter vyhodil novou výjimku
Reference kvalifikované listem a externí reference nejsou cílové oblasti; každé pravidlo patří ke svému listu a znaky dolaru musí stát na obvyklých pozicích odkazu A1
Vyhledávání pravidel, mazání buněk a oblastí i vyhodnocovač podmíněného formátování používají stejnou geometrii cíle; souhrnná pravidla počítají překrývající se oblasti jednou a procházejí jen uložené hodnoty buněk, i když cíl pokrývá celou mřížku
Od 2.384.77 transformují úpravy řádků a sloupců také cíle pravidel přes celé řádky a sloupce v rámci mřížky listu; rozsah pokrývající každý řádek nebo sloupec zůstává při úpravě této osy kompletní, zatímco úpravy druhé osy cíl posunou, zmenší nebo odstraní
Klonování oblastí zachovává smlouvu úplného pokrytí: každá cílová oblast musí být před zkopírováním pravidla celá uvnitř zdrojového obdélníku a samotný částečný průnik pravidlo nekopíruje; takové cíle lze klonovat ze zdroje celého řádku nebo celého sloupce, pokud cíl zůstane v mřížce
Vnitřní úpravy zachovávají domény relativních výrazů a vzorců porovnání buněk tak, že podle potřeby cíl rozdělí a sloučí části, které zůstávají ekvivalentní na jednom společném kotvě; knihovna nereprodukuje extra formátování na konci mřížky, které Excel umí při vkládání implicitně zkopírovat
Příklad
var Index: Integer;
begin
Index := Sheet.ConditionalFormats.AddExpression('B2:B100', 'B2<0');
Sheet.ConditionalFormats[Index].Style.SetFillBgColor($0000FF);
Sheet.ConditionalFormats.AddColorScale3('C2:C100', $0000FF, $00FFFF, $00FF00, cfvMinOfRange, '', cfvPercentile, '50', cfvMaxOfRange, '');
end;Podmíněné číselné formáty
Style.SetNumFormatId nastaví diferenciální číselný formát nezávisle na základním formátu cílové buňky; ID 0 je explicitní reset na General, když přepis chybí, základní formát dál platí
Vlastní ID formátů jsou 164 + Index, kde Index je výsledek Workbook.NumberFormats.Add počítaný od nuly; ukládání XLSX zachová formáty, na které odkazují jen podmíněná pravidla, a při zhuštění fondu formátů aktualizuje jejich ID
Podmíněné styly ODS
Import i export ODS zachovávají diferenciální styly pravidel porovnání buněk a výrazů: barvu, název, velikost, tučnost, kurzívu a podtržení písma, plné nebo průhledné pozadí a číselné formáty podporované převodníkem číselných formátů ODS
Explicitní černá, normální řez písma, chybějící podtržení a průhledné pozadí zůstávají přepisy; atributy, které pravidlo neobsahuje, dál používají základní formátování cílové buňky
Barvy motivu a indexované barvy se exportují jako vyřešené barvy, takže vzhled přežije, ale identita motivu či palety se přes ODS nepřenáší; metadata schématu písma nemají v ODS mapování
ODS používá obyčejné jednoduché nebo dvojité podtržení místo účetního a vzorované výplně zastupuje barva pozadí; přepisy ohraničení a zarovnání TXLSDxfStyle nezpřístupňuje
Ověřený import ODS v Excelu 16 zachová barvy zvýraznění, explicitní resety, podtržení a procentní formátování, ale ignoruje podmíněnou rodinu a velikost písma; LibreOffice 26.2.5.2 tyto vlastnosti pojmenovaných stylů čte a jeho převedené XLSX je v Excelu zachová
Od 2.384.75 používají pravidla porovnání buněk a výrazů v ODS kompaktní opakované prázdné nosiče napříč svými kompletními cíli, včetně celých řádků, celých sloupců a širokých oblastí; překrývající se pravidla si zachovávají pořadí a výplň pouze z nosičů nevytváří při opětovném otevření v HotXLS uložené buňky
Viz také