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 这样的整行;反序端点会被规范化,空格、制表符或换行符分隔多个区域
绝对引用和混合引用保留原始的 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