如何通过 UI 手动或通过获取请求获取智能表列的 ID

How to get ID of smartsheet column, either manually via UI, or through a fetch-request

我正在为一个项目使用 smartsheet。通过访问文件 > 属性,将显示 sheet ID。 Row ID 也是如此,在高亮一行时。但是,这些标准 UI 方法中的 none 适用于列。

如何在 smartsheet 中查看列 ID?

我不知道通过 Smartsheet UI 获取列 ID 的方法。但是,您可以通过 API.

轻松完成此操作

如果执行代表 Sheet 包含的列的 Get Sheet operation, the response will be a Sheet object that contains (amongst other things), a columns property that is an array of Column 对象。

要求:GET /sheets/{sheetId}

回复(部分):

{
  "id": 4583173393803140,
  ...
  "columns": [
    {
      "id": 4583173393803140,
      "version": 1,
      "index": 0,
      "primary": true,
      "title": "Item",
      "type": "TEXT_NUMBER",
      "validation": false
    },
    {
      "id": 603843458295684,
      "version": 2,
      "index": 5,
      "title": "Type",
      "type": "TEXT_NUMBER"
      "validation": false
    },
    ...
  ],
  "rows": [...]
}

如果这是您的一次性任务,您可以使用 cURL or the Postman API Client 之一提交 Get Sheet 请求。否则——即,如果获取列 ID 是您正在开发的更大集成的一部分——您可以使用您选择的语言发出 Get Sheet 请求。

更新 12/8(列表列):

获取有关 sheet 包含的列的信息的另一种方法是使用 List Columns 操作。这比使用 Get Sheet 操作更有效,因为 List Columns 的响应仅包含列信息,而响应for Get Sheet 也包含行信息(除了其他 sheet 级别的属性)。

要求:GET /sheets/{sheetId}/columns

响应(例如,对于具有 3 列的 sheet):

{
  "pageNumber": 1,
  "pageSize": 100,
  "totalPages": 1,
  "totalCount": 3,
    "data": [
        {
            "id": 7960873114331012,
            "index": 0,
            "symbol": "STAR",
            "title": "Favorite",
            "type": "CHECKBOX",
            "validation": false
        },
        {
            "id": 642523719853956,
            "index": 1,
            "primary": true,
            "title": "Primary Column",
            "type": "TEXT_NUMBER",
            "validation": false
        },
        {
            "id": 5146123347224452,
            "index": 2,
            "title": "Status",
            "type": "PICKLIST",
            "validation": false
        }
    ]
}

在VB.NET中:

    Dim oSheet As Sheet = oSmartsheetClient.SheetResources.GetSheet(iSheetId, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)
    Dim oColumns As New Hashtable

    For Each oCol As Column In oSheet.Columns
        oColumns(oCol.Id) = oCol.Title
    Next

    Dim sColumnName As String = oColumns("Column1")