Problem Statement
在使用 dws(v1.0.32)处理钉钉在线表格(axls)时,若想知道"某一列有哪些取值/可选项",目前只能把该列所有单元格用 dws sheet range read 读出来再去重,存在两个问题:
range read 有响应大小上限,无法一次批量读多列(例如 A2:H3126 这类多列大范围会直接失败,且要 ~20s 才返回错误),只能逐列读取;逐列串行又受单次调用延迟拖累,一张 15 列的表需要并发才能压到 ~20s。
- 这种"逐格读内容"对设置了数据验证(下拉列表)的列本应是多余的——下拉选项本身就是列的元数据,理应可以直接读取而不必扫描所有行。
而 dws schema 中其实已经定义了相关的元数据工具(如 get_dropdown_lists / set_dropdown_lists / delete_dropdown_lists、get_filter / set_filter_criteria、cond_format 系列等),但它们没有被暴露为可运行的 CLI 子命令:
dws sheet --help 实际只列出 20 个可运行命令(add-dimension/append/…/write-image),不含上述 snake_case 工具;
- 运行
dws sheet get_dropdown_lists ... 或 dws sheet get-dropdown-lists ... 会报 unknown flag: --node,且 --help 退回到 dws sheet 级别;
- 即"
dws schema 里有、CLI 里跑不了"的不一致。
Proposed Solution
将 dws schema 中已定义、但 CLI 未接通的这些 sheet envelope 工具暴露为可运行的 CLI 子命令,优先级最高的是 get_dropdown_lists:
# 期望:返回指定范围内各下拉/数据验证区域的选项配置(元数据,不读单元格内容)
dws sheet get-dropdown-lists \
--node "<URL|ID>" --sheet-id "<sheetId>" --range "A1:O3126" --format json
一并希望补齐(均已在 dws schema 中定义):
- get_dropdown_lists / set_dropdown_lists / delete_dropdown_lists
- get_filter / create_filter / set_filter_criteria / clear_filter_criteria / sort_filter
- create_cond_format / get_cond_format / update_cond_format / delete_cond_format
并建议提供一致性校验,确保 dws schema <product>.<tool> 中列出的工具都能在 dws <product> --help 中作为命令运行,避免 schema 与 CLI 脱节。
Alternatives Considered
1. 逐列 range read全量读取后本地去重(当前唯一可行做法):对纯文本列是并发,一张表 ~20s;对"下拉列"则
2. 改用多维表(aitable/able):dws aitable field ge记录),这正是期望的"不读内容拿 里,axls 没有等价能力——本 issue即希望为 axls 补上类似的元数据读取路径。
Use Case
- 快速了解一张在线表格的 schema:输出"每列表头 + 该列可选值",用于数据探查、生成把成千上万行内容拉下来。
- 自动化 / AI Agent 场景:Agent 在为表格生成字段/取值约束文档 据级)拿到列的可选值,而不是大量range read。
- 校验数据规范性:对比"下拉定义 脏数据(如同一含义的大小写/变体不一致)。
Additional Context
- 版本:dws v1.0.32(open edition)。
- dws schema sheet.get_dropdowdeId, sheetId,range],但运行时不可用。
- 复现:
# schema 中存在
dws schema sheet.get_dropdown_lists --jq '.tool.required'
# 但 CLI 无法运行(报 unknown fheet)
dws sheet get-dropdown-lists --node "<URL|ID>" --sheet-id "<sheetId>" --range "A1:O50"
--format json
dws sheet get_filter --node "<URL|ID>" --sheet-id "<sheetId>" --format json
- 同类受影响命令:get_filter、create_filter、set_filter_criteria、cond_format 系列等(均在
schema 中、CLI 不可运行)。
Problem Statement
在使用
dws(v1.0.32)处理钉钉在线表格(axls)时,若想知道"某一列有哪些取值/可选项",目前只能把该列所有单元格用dws sheet range read读出来再去重,存在两个问题:range read有响应大小上限,无法一次批量读多列(例如A2:H3126这类多列大范围会直接失败,且要 ~20s 才返回错误),只能逐列读取;逐列串行又受单次调用延迟拖累,一张 15 列的表需要并发才能压到 ~20s。而
dws schema中其实已经定义了相关的元数据工具(如get_dropdown_lists/set_dropdown_lists/delete_dropdown_lists、get_filter/set_filter_criteria、cond_format系列等),但它们没有被暴露为可运行的 CLI 子命令:dws sheet --help实际只列出 20 个可运行命令(add-dimension/append/…/write-image),不含上述 snake_case 工具;dws sheet get_dropdown_lists ...或dws sheet get-dropdown-lists ...会报unknown flag: --node,且--help退回到dws sheet级别;dws schema里有、CLI 里跑不了"的不一致。Proposed Solution
将
dws schema中已定义、但 CLI 未接通的这些sheetenvelope 工具暴露为可运行的 CLI 子命令,优先级最高的是get_dropdown_lists: