HotXLS 開發人員參考:TXLSXConditionalFormat 與 TXLSXConditionalFormats 類別

提供此 XLSX 功能的 API,並保留原始識別項

TXLSXConditionalFormats 提供此 XLSX 功能的 API,並保留原始識別項 TXLSXWorksheet.ConditionalFormats 提供此 XLSX 功能的 API,並保留原始識別項

提供此 XLSX 功能的 API,並保留原始識別項

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;

主要成員

Range, Op, Formula1 and Formula2主要成員
Style使用屬性與方法建立、讀取及更新工作表、範圍與物件
DataBar, ColorScale and IconSet使用屬性與方法建立、讀取及更新工作表、範圍與物件
Priority and StopIfTrue另請參閱
Text, Rank, Percent, Bottom and AboveAverage另請參閱
TimePeriodTXLSXConditionalFormat 與 TXLSXConditionalFormats 類別

規則目標範圍

自 2.384.76 起,工作表本機目標接受單一儲存格、儲存格矩形、如 $B:$D 的整欄,以及如 $5:$8 的整列;端點相反時會予以正規化,多個區域則以空格、Tab 或換行分隔
絕對與混合參照會保留原始的 Range 文字;比對涵蓋第 1 到 1048576 列與 A 到 XFD 欄,略過格式錯誤或超出格線的區域,同一規則中有效的相鄰區域保持作用,而且不會另外擲出 setter 例外
帶工作表限定詞與外部參照不屬於目標區域;每條規則都隸屬於自己的工作表,錢字號必須出現在一般 A1 參照的位置
規則查找、儲存格與範圍刪除,以及條件式格式求值器都使用同一套目標幾何;彙總規則對重疊區域只計一次,而且只走訪已儲存的儲存格值,即使目標橫跨整個格線也一樣
自 2.384.77 起,列與欄的編輯也會在工作表格線內轉換整軸的規則目標;橫跨每列或每欄的目標在該軸被編輯時仍保持完整,而另一軸的編輯則會移動、縮小或移除目標
範圍複製保留完整涵蓋的契約:每個目標區域都必須落在來源矩形內,規則才會被複製,只有局部相交不會複製規則;當目的地留在格線內時,整軸目標可以從整列或整欄來源複製
內部編輯會在需要時拆分目標,並合併在同一共同錨點下仍等效的部分,以保留相對運算式與儲存格比較的公式領域;程式庫不會重現 Excel 在插入時可能隱含複製的額外格線末端格式

TXLSXWorksheet

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;

條件式數值格式

Style.SetNumFormatId 會設定與目標儲存格基礎格式無關的差異化數值格式;ID 0 是明確重設為 General,而沒有覆寫時基礎格式繼續生效
自訂格式 ID 為 164 + Index,其中 Index 是 Workbook.NumberFormats.Add 的零起算結果;XLSX 儲存會保留只被條件式規則引用的格式,並在格式集區壓縮時更新這些 ID

ODS 條件式樣式

ODS 匯入與匯出會保留儲存格比較與運算式規則的差異化樣式:字型色彩、名稱、大小、粗體、斜體與底線,實色或透明背景,以及 ODS 數值格式轉換器支援的數值格式
明確的黑色、一般字重、無底線與透明背景仍是覆寫;規則中缺席的屬性繼續使用目標儲存格的基礎格式
主題色與索引色匯出時解析成實際顏色,外觀保得住,但主題或調色盤身分無法透過 ODS 往返;字型配置中繼資料沒有 ODS 對應
ODS 使用一般的單線或雙線底線而非會計底線,圖樣填滿則以背景色表示;框線與對齊覆寫不會透過 TXLSDxfStyle 公開
經驗證的 Excel 16 ODS 匯入會保留醒目提示色彩、明確重設、底線與百分比格式,但忽略條件式的字型家族與大小;LibreOffice 26.2.5.2 讀得到那些具名樣式屬性,其轉換出的 XLSX 在 Excel 中也保留它們
自 2.384.75 起,ODS 的儲存格比較與運算式規則會以緊湊的重複空白載體涵蓋完整目標,包括整列、整欄與寬幅範圍;重疊規則保持原本順序,僅由載體構成的填補在 HotXLS 重新開啟時不會建立已儲存的儲存格

TXLSXWorksheet