# Sheet 浮动图表 ## 真对象约束 用户要求图表时必须创建 Sheet chart 对象,不能用单元格字符、静态图片或本地绘图冒充。chartId 必须来自本任务 create/list;所有操作复用真实 nodeId、sheetId。 常见映射:分类比较用 column/bar,趋势用 line,构成用 pie/doughnut,两个连续变量关系用 scatter。当前支持的精确类型只有:column、bar、columnStacked、barStacked、line、lineStacked、area、areaStacked、areaPercentStacked、pie、doughnut、scatter、radar。 当前不支持 combo/组合图或双轴组合图。用户要求此类图表时不得发送 `type:"combo"`,也不能谎称已经创建;应说明限制,并在用户接受时改为两个受支持的独立图表。用户已指定其他受支持类型时不擅自替换。 ## 创建前 1. csv-get 读取数据范围,确认表头、类别列和系列列。 2. info 查看已用行列与结构。 3. 选择不遮挡数据的 position;宽高为正数。 4. 每个 series/category 的 A1 引用必须位于同一工作表上下文,范围长度匹配。 ## 创建与查询 dws sheet chart create --node --sheet-id --properties '{ "position":{"row":12,"col":"A"}, "dimensions":{"width":600,"height":400}, "chart":{ "type":"column", "series":[{"name":"B1","value":["B2:B10"]}], "category":["A2:A10"], "title":{"show":true,"text":"销售数据"} } }' --format json properties 顶层必须同时包含 position、dimensions、chart,可选 offset。硬约束: - position.row 和 position.col 都必填;row 是 0-based 锚点行,col 必须是列字母(如 A、AA),不支持数字列号。 - dimensions.width/height 都必填且为正数。 - chart.type 必须取上面的支持枚举。 - chart.series 必须是非空数组;每项都必须有非空的 value 范围数组。series.name 可引用表头格,category 是类别范围数组。 - series/name/category 使用 A1 表示法;不带工作表前缀时使用 `--sheet-id` 对应工作表。引用跨表数据时显式带工作表前缀,不从当前名称猜测。 复杂轴、图例、颜色等字段只在用户需要时加入,不确定时读取 chart create 的 compact Schema;不得从其他表格产品照搬字段。当前常用配置面: | 对象 | 已知字段与枚举 | |---|---| | `title` | `show:boolean`、`text:string` | | `legend` | `show:boolean`;`pos` 仅为 `t` / `b` / `l` / `r` / `none` | | `catAx` / `valAx` | `show:boolean`、`pos:l/t/b/r`、`titleConfig:{show,title}`、`axisMin` / `axisMax` 为 `number` / `null`、`splitLine:boolean`、`minorSplitLine:boolean`、`axisLabel:boolean`、`axisLine:boolean` | 未列出的字段或枚举以精确 leaf Schema 为准,不猜测;更新时仍须先读完整对象再整体回写。 创建后保存返回 chartId,并验证: dws sheet chart list --node --sheet-id --chart-id --format json 检查类型、数据范围、标题、位置和尺寸。列表成功但找不到刚创建 ID,不能称为完成。 ## 更新是 PUT chart update 的 properties 为整体覆盖,不是 patch。必须先 list 单个 chart,保留完整 position/dimensions/chart,在本地只改目标字段后整体回写: dws sheet chart update --node --sheet-id --chart-id --properties '<完整_PROPERTIES_JSON>' --format json 只提交局部配置会把未传字段恢复默认或删除。更新后再次 list 单个对象并比较关键字段。 ## 删除 删除不可恢复。先 list 获取名称、chartId、数据范围和位置,展示摘要并获得明确同意,然后: dws sheet chart delete --node --sheet-id --chart-id --yes --format json 最后 list 验证对象消失。非零、坏 JSON、缺失对象或错误 ID 不得当作成功。