Files
2026-09-02 11:44:52 +08:00

4.5 KiB
Raw Permalink Blame History

Sheet 条件格式

边界

条件格式是随单元格值变化的规则对象,不是一次性静态样式。只要求固定外观时进入 sheet-style-format。ruleId 必须来自本任务 create/list;所有操作使用真实 nodeId、sheetId。

若用户明确要求新增“判断结果/是或否”辅助列,必须先写可见辅助列,再基于辅助列创建规则;不能用一步 formulaCondition 隐藏掉用户要求的数据产物。

创建前

  • 读取最小数据范围,确认首行、空值和数据类型。
  • ranges 是 JSON 数组,使用精确 A1 范围,不扩大到无界整列。
  • 日期或公式条件要处理空单元格,避免空值被当作 0/日期触发。日期到期示例使用 =AND(E1<>"",E1<=TODAY());相对引用随行变化,只有明确固定比较一个格时才用绝对引用。
  • 每条规则的 condition 只能选一种结构。常用精确形态:
    • numberConditionoperator=equal/not-equal/greater/greater-equal/less/less-equal/between/not-betweenvalue1 必填,between/not-between 还需 value2。
    • textConditionoperator=contains/not-contains/starts-with/ends-withvalue 为文本。
    • emptyCondition/errorCondition/duplicateConditionoperator 分别取 is-empty/is-not-empty、error/no-error、duplicate/unique。
    • formulaCondition{"formula":"=A1>100"}
    • rankConditionvalue、isPercent、isBottomaverageConditionisAbove、andEqualstdevConditionvalue、isAbove、andEqual。
    • dataBarConditionminPoint/maxPoint,各点 type 取 auto/maxmin/number/percent/percentile/formula,可带 value;样式单独用 data-bar-style。
    • iconSetConditioniconSet 数组项包含 criteria {type,value,gtOrEqual} 和 icon {type:"id",value:...},可带 showIconOnly。
    • colorScaleConditioncriterias 为 2 或 3 项,每项 {type,value?,color}
  • cell-style 只使用 backgroundColor、fontColor、bold、italic、strikethrough。“标红/高亮/染色”默认 backgroundColor,只有明确“字体红”才用 fontColor。不确定扩展字段时读 create 的 compact Schema。

创建

数值阈值示例:

dws sheet cond-format create       --node <NODE_ID> --sheet-id <SHEET_ID>       --ranges '["A2:A100"]'       --condition '{"numberCondition":{"operator":"greater","value1":"80"}}'       --cell-style '{"backgroundColor":"#FFCDD2","fontColor":"#B71C1C","bold":true}'       --format json

辅助列示例,分两个阶段:

dws sheet range update       --node <NODE_ID> --sheet-id <SHEET_ID> --range "H2:H4"       --values '[[{"type":"text","text":"=IF(A2>B2,\"是\",\"否\")"}],[{"type":"text","text":"=IF(A3>B3,\"是\",\"否\")"}],[{"type":"text","text":"=IF(A4>B4,\"是\",\"否\")"}]]'       --format json

dws sheet cond-format create       --node <NODE_ID> --sheet-id <SHEET_ID>       --ranges '["A2:H4"]'       --condition '{"formulaCondition":{"formula":"=$H2=\"是\""}}'       --cell-style '{"backgroundColor":"#FFECEC"}'       --format json

先回读 H2:H4 的公式和值,再创建规则。不要把公式条件视觉正确等同于辅助列已经存在。

数据条样式示例:

--condition '{"dataBarCondition":{"minPoint":{"type":"auto"},"maxPoint":{"type":"auto"}}}' --data-bar-style '{"fill":["#4CAF50","#F44336"],"isGradient":true}'

三色色阶示例:

--condition '{"colorScaleCondition":{"criterias":[{"type":"maxmin","color":"#F44336"},{"type":"percentile","value":"50","color":"#FFEB3B"},{"type":"maxmin","color":"#4CAF50"}]}}'

查询、更新、删除

dws sheet cond-format list       --node <NODE_ID> --sheet-id <SHEET_ID>       --rule-id <RULE_ID> --format json

update 是部分更新:至少传 ranges、condition、cell-style、data-bar-style 之一,未传字段保持不变;传 condition 会替换原条件类型。先 list 单个对象确认当前类型与范围,再只提交用户要求的字段,完成后重新 list。

dws sheet cond-format update       --node <NODE_ID> --sheet-id <SHEET_ID>       --rule-id <RULE_ID>       --condition '{"numberCondition":{"operator":"greater","value1":"90"}}'       --format json

删除规则不删除原始数据,但会永久移除视觉规则;规则已不存在时按幂等成功处理。展示 ruleId、范围和条件,得到明确同意后:

dws sheet cond-format delete       --node <NODE_ID> --sheet-id <SHEET_ID>       --rule-id <RULE_ID> --yes --format json

create/update 后 list 验证 ID、ranges、condition 和样式;delete 后验证规则消失。命令失败、JSON 损坏或列表缺字段不能解释为空规则。