8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
275 lines
10 KiB
JSON
275 lines
10 KiB
JSON
{
|
||
"$schema": "../_schema.json",
|
||
"format": "xlsx",
|
||
"element": "conditionalformatting",
|
||
"elementAliases": ["cf"],
|
||
"parent": "sheet",
|
||
"operations": {
|
||
"add": true,
|
||
"set": true,
|
||
"get": true,
|
||
"query": true,
|
||
"remove": true
|
||
},
|
||
"paths": {
|
||
"positional": ["/SheetName/cf[N]"]
|
||
},
|
||
"note": "Aliases: cf, cfextended. Type names map to xlsx CF rules (cellIs, colorScale, dataBar, iconSet, containsText, top/bottom N, etc.).",
|
||
"properties": {
|
||
"type": {
|
||
"type": "enum",
|
||
"description": "CF rule type.",
|
||
"values": ["cellIs", "colorScale", "dataBar", "iconSet", "containsText", "notContainsText", "beginsWith", "endsWith", "top", "topN", "top10", "topPercent", "bottom", "bottomN", "bottomPercent", "aboveAverage", "belowAverage", "duplicateValues", "uniqueValues", "containsBlanks", "containsErrors", "notContainsBlanks", "notContainsErrors", "formula", "dateOccurring", "today", "yesterday", "tomorrow", "thisWeek", "lastWeek", "nextWeek", "thisMonth", "lastMonth", "nextMonth"],
|
||
"aliases": ["rule"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=cellIs", "--prop rule=top10"],
|
||
"readback": "rule type",
|
||
"enforcement": "report"
|
||
},
|
||
"ref": {
|
||
"type": "string",
|
||
"description": "target cell range.",
|
||
"aliases": ["range", "sqref"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop ref=A1:A10", "--prop sqref=A1:A10"],
|
||
"readback": "cell range",
|
||
"enforcement": "report"
|
||
},
|
||
"fill": {
|
||
"type": "color",
|
||
"description": "background fill color for matched cells. Use this for cellIs, text, top/bottom, and formula rules.",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop fill=FFFF00"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"operator": {
|
||
"type": "string",
|
||
"description": "operator for cellIs/text rules.",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop operator=greaterThan"],
|
||
"readback": "operator",
|
||
"enforcement": "report"
|
||
},
|
||
"value": {
|
||
"type": "string",
|
||
"description": "threshold / comparison value.",
|
||
"aliases": ["formula1", "formula"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop value=100", "--prop formula=$A1>5"],
|
||
"readback": "value/formula",
|
||
"enforcement": "report"
|
||
},
|
||
"color": {
|
||
"type": "color",
|
||
"description": "bar color for dataBar rules only. For cellIs/text/formula rules, use 'fill' instead.",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop color=#FFFF00"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"value2": {
|
||
"type": "string",
|
||
"description": "second threshold for between/notBetween cellIs rules. Alias: maxvalue.",
|
||
"aliases": ["maxvalue"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop value=10 --prop value2=20"],
|
||
"readback": "value/formula",
|
||
"enforcement": "report"
|
||
},
|
||
"text": {
|
||
"type": "string",
|
||
"description": "needle for containsText/notContainsText/beginsWith/endsWith rules.",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=containsText --prop text=ERROR"],
|
||
"readback": "needle string",
|
||
"enforcement": "report"
|
||
},
|
||
"rank": {
|
||
"type": "number",
|
||
"description": "rank for top/bottom N rules. Aliases: top, bottomN.",
|
||
"aliases": ["top", "bottomN"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=topN --prop rank=10"],
|
||
"readback": "integer rank",
|
||
"enforcement": "report"
|
||
},
|
||
"percent": {
|
||
"type": "bool",
|
||
"description": "treat 'rank' as a percentile rather than count (top/bottom rules).",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=top --prop rank=10 --prop percent=true"],
|
||
"readback": "true/false",
|
||
"enforcement": "report"
|
||
},
|
||
"bottom": {
|
||
"type": "bool",
|
||
"description": "select bottom-N instead of top-N (top/bottom rules).",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=bottom --prop rank=5"],
|
||
"readback": "true/false",
|
||
"enforcement": "report"
|
||
},
|
||
"aboveAverage": {
|
||
"type": "bool",
|
||
"description": "aboveAverage rule: true=above, false=below. Alias: above.",
|
||
"aliases": ["above"],
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop type=aboveAverage --prop aboveAverage=true"],
|
||
"readback": "true/false",
|
||
"enforcement": "report"
|
||
},
|
||
"stdDev": {
|
||
"type": "number",
|
||
"description": "stdDev offset for aboveAverage rules (1 = 1σ above mean). Add-time only — Get does not surface this back today.",
|
||
"add": true, "set": false, "get": false,
|
||
"examples": ["--prop stdDev=1"],
|
||
"readback": "n/a",
|
||
"enforcement": "report"
|
||
},
|
||
"equalAverage": {
|
||
"type": "bool",
|
||
"description": "include the mean in aboveAverage matching. Add-time only — Get does not surface this back today.",
|
||
"add": true, "set": false, "get": false,
|
||
"examples": ["--prop equalAverage=true"],
|
||
"readback": "n/a",
|
||
"enforcement": "report"
|
||
},
|
||
"period": {
|
||
"type": "string",
|
||
"description": "time-period token for dateOccurring rules (today, yesterday, tomorrow, thisWeek, lastWeek, nextWeek, thisMonth, lastMonth, nextMonth). Aliases: timePeriod.",
|
||
"aliases": ["timePeriod", "timeperiod"],
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop type=dateOccurring --prop period=lastWeek"],
|
||
"readback": "period token",
|
||
"enforcement": "report"
|
||
},
|
||
"min": {
|
||
"type": "string",
|
||
"description": "data-bar minimum value (numeric or 'auto'). Used by dataBar rules.",
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop type=dataBar --prop min=0 --prop max=100"],
|
||
"readback": "number or token",
|
||
"enforcement": "report"
|
||
},
|
||
"max": {
|
||
"type": "string",
|
||
"description": "data-bar maximum value (numeric or 'auto'). Used by dataBar rules.",
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop type=dataBar --prop max=100"],
|
||
"readback": "number or token",
|
||
"enforcement": "report"
|
||
},
|
||
"showValue": {
|
||
"type": "bool",
|
||
"description": "show numeric label alongside data bar / icon set. Alias: showvalue.",
|
||
"aliases": ["showvalue"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop showValue=false"],
|
||
"readback": "true/false",
|
||
"enforcement": "report"
|
||
},
|
||
"negativeColor": {
|
||
"type": "color",
|
||
"description": "data-bar fill color for negative values.",
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop negativeColor=#FF0000"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"axisColor": {
|
||
"type": "color",
|
||
"description": "data-bar axis color (separator between positive and negative bars).",
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop axisColor=#000000"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"axisPosition": {
|
||
"type": "enum",
|
||
"values": ["automatic", "middle", "none"],
|
||
"description": "data-bar axis position. Default: automatic. Add-time only — Get does not surface this back today.",
|
||
"add": true, "set": false, "get": false,
|
||
"examples": ["--prop axisPosition=middle"],
|
||
"readback": "n/a",
|
||
"enforcement": "report"
|
||
},
|
||
"minColor": {
|
||
"type": "color",
|
||
"description": "color-scale color at the minimum stop. Alias: mincolor.",
|
||
"aliases": ["mincolor"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=colorScale --prop minColor=#F8696B"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"maxColor": {
|
||
"type": "color",
|
||
"description": "color-scale color at the maximum stop. Alias: maxcolor.",
|
||
"aliases": ["maxcolor"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop maxColor=#63BE7B"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"midColor": {
|
||
"type": "color",
|
||
"description": "color-scale color at the midpoint stop. Alias: midcolor.",
|
||
"aliases": ["midcolor"],
|
||
"add": true, "set": false, "get": true,
|
||
"examples": ["--prop midColor=#FFEB84"],
|
||
"readback": "#-prefixed hex",
|
||
"enforcement": "report"
|
||
},
|
||
"midPoint": {
|
||
"type": "string",
|
||
"description": "color-scale midpoint value (numeric or percentile). Alias: midpoint. Add-time only — Get does not surface this back today.",
|
||
"aliases": ["midpoint"],
|
||
"add": true, "set": false, "get": false,
|
||
"examples": ["--prop midPoint=50"],
|
||
"readback": "n/a",
|
||
"enforcement": "report"
|
||
},
|
||
"iconset": {
|
||
"type": "string",
|
||
"description": "icon-set name (e.g. 3TrafficLights1, 3Arrows, 5Rating). Alias: icons.",
|
||
"aliases": ["icons"],
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=iconSet --prop iconset=3TrafficLights1"],
|
||
"readback": "icon-set name",
|
||
"enforcement": "report"
|
||
},
|
||
"reverse": {
|
||
"type": "bool",
|
||
"description": "reverse the icon-set ordering.",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop reverse=true"],
|
||
"readback": "true/false",
|
||
"enforcement": "report"
|
||
},
|
||
"formula": {
|
||
"type": "string",
|
||
"description": "formulaCf expression (without leading '=').",
|
||
"add": true, "set": true, "get": true,
|
||
"examples": ["--prop type=formula --prop formula=ISERROR(A1)"],
|
||
"readback": "formula expression",
|
||
"enforcement": "report"
|
||
},
|
||
"type": {
|
||
"type": "enum",
|
||
"values": ["dataBar", "colorScale", "iconSet", "formula", "topN", "aboveAverage", "duplicateValues", "uniqueValues", "containsText", "cellIs", "timePeriod"],
|
||
"description": "Canonical Get-only CF rule type token (camelCase). One key per semantic value — previously split as ruleType + cfType.",
|
||
"add": false, "set": false, "get": true,
|
||
"readback": "canonical CF type token",
|
||
"enforcement": "report"
|
||
},
|
||
"dxfId": {
|
||
"type": "int",
|
||
"description": "Get-only readback of the differential format index referenced by this rule (links to the workbook-level dxfs table).",
|
||
"add": false, "set": false, "get": true,
|
||
"readback": "0-based dxf index",
|
||
"enforcement": "report"
|
||
}
|
||
}
|
||
}
|