You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Smartsheet API填充/修改PICK LIST列的选项

嘿,很高兴你在探索Smartsheet API的进阶用法!要修改或填充PICK LIST列的选项,核心是操作列本身的元数据,这和你之前接触的修改行内选中值是完全不同的接口逻辑。下面给你一步步拆解实现方法:

核心思路:使用Update Column接口

PICK LIST的选项属于列的配置属性,所以需要调用PUT /sheets/{sheetId}/columns/{columnId}接口来更新列的设置,而不是操作行数据。

步骤1:获取目标列的ID和当前配置(可选但推荐)

在修改前,你可以先通过GET /sheets/{sheetId}接口拿到工作表的列信息,找到目标PICK LIST列的id,以及它当前的options数组(如果需要保留现有选项的话)。

返回的列数据结构大概是这样:

{
  "id": 123456789,
  "title": "项目状态",
  "type": "PICKLIST",
  "options": ["待启动", "进行中", "已完成"]
}

步骤2:构造更新请求体

根据你的需求,构造对应的JSON请求体:

  • 如果要完全替换所有选项:直接传入新的options数组
  • 如果要追加新选项:先合并现有选项和新选项,再传入数组

示例请求体(替换选项):

{
  "type": "PICKLIST",
  "options": ["待启动", "进行中", "已暂停", "已完成"]
}

示例请求体(追加选项,基于现有选项扩展):

{
  "type": "PICKLIST",
  "options": ["待启动", "进行中", "已完成", "已取消"]
}

步骤3:用JavaScript发送请求

这里用原生fetch写个简单示例,你也可以用axios等更便捷的HTTP库:

const sheetId = "你的工作表ID";
const columnId = "目标列的ID";
const apiToken = "你的Smartsheet API令牌";

const updatePicklistOptions = async () => {
  try {
    const response = await fetch(
      `https://api.smartsheet.com/2.0/sheets/${sheetId}/columns/${columnId}`,
      {
        method: "PUT",
        headers: {
          "Authorization": `Bearer ${apiToken}`,
          "Content-Type": "application/json"
        },
        body: JSON.stringify({
          type: "PICKLIST",
          options: ["待启动", "进行中", "已暂停", "已完成", "已取消"]
        })
      }
    );

    if (!response.ok) {
      throw new Error(`请求失败: ${response.statusText}`);
    }

    const updatedColumn = await response.json();
    console.log("下拉列选项已更新:", updatedColumn);
  } catch (error) {
    console.error("更新出错:", error);
  }
};

// 执行更新操作
updatePicklistOptions();

关键注意事项

  • 权限要求:你的API令牌对应的账号需要拥有该工作表的编辑列结构权限(不是仅编辑行的权限),否则会返回权限错误。
  • 层级下拉处理:如果你的PICK LIST是带层级的(父选项关联子选项),请求体需要用optionGroups字段替代options,结构会更复杂,需要按照层级组织数据。
  • 避免意外覆盖:如果不想丢失现有选项,一定要先通过GET接口获取当前的options数组,合并新选项后再PUT回去——直接传新数组会完全覆盖旧选项。

内容的提问来源于stack exchange,提问作者JamesR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:10:36