Создание нескольких выпадающих столбцов с помощью API smartsheet - PullRequest
0 голосов
/ 03 октября 2019

Совсем недавно в таблицу smartsheet был добавлен новый тип столбца: multi раскрывающийся список: enter image description here

Есть ли какое-либо решение для создания такого столбца с использованием API?

Планируется ли новая версия API?

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Начиная с 1 октября, вы можете создать столбец, который поддерживает новую функцию раскрывающегося списка. Документация немного отстает.

  1. Если у вас еще нет столбца, сначала нужно добавить столбец.
  2. После того, как у вас есть columnId, вы можете отправить запрос на обновление столбца и указать"type" as "MULTI_PICKLIST".

Чтобы получить правильный тип при выполнении GET / sheet / {sheetId} или GET / {columnId}, необходимо использовать параметр запроса? level= 3 & включают в себя = objectValue.

0 голосов
/ 10 октября 2019

Можно создать раскрывающийся список (множественный выбор) через API!

Чтобы кратко решить проблему TEXT_NUMBER, этот тип используется длясовместимость. Если вы не знаете о суффиксе ?level=2&include=objectValue, ответ вернет тип столбца TEXT_NUMBER, чтобы избежать взлома любых существующих клиентов, которые не настроены для обработки нового типа столбца.


В следующих примерах переменные в двойных скобках представляют ваши цели:

{{environment}} - это что-то вроде https://api.smartsheet.com/2.0/

{{sheetId}} - это идентификатор листа в виде 6264126827992742

{{columnId}} - это идентификатор вашего основного столбца в форме 2641268279927426

{{columnId2}} - это идентификатор вашего столбца с несколькими списками выбора в форме 6412682799274262


Чтобы добавить столбец с типом MULTI_PICKLIST к существующему листу:

POST: {{environment}}/sheets/{{sheetId}}/columns/

{
  "title": "I'm a new multi picklist column",
  "type":"MULTI_PICKLIST",
  "index": 1,
  "options": ["opt1","opt2","opt3"]
}

Чтобы создать столбецна новом листе этот пример создаст лист с основным столбцом, столбцом MULTI_PICKLIST, а затем добавит строку с некоторыми данными.

Затем он получит лист, используя уровень 2, чтобы избежать обратной совместимости типа TEXT_NUMBER.

Чтобы создать лист со столбцом MULTI_PICKLIST:

POST: {{environment}}/sheets

{
  "name":"API PL Sheet",
  "columns":
  [
    {
      "title":"My primary Column",
      "primary":true,
      "type":"TEXT_NUMBER"
    },
    {
      "title":"My multi select column",
      "type":"MULTI_PICKLIST", 
      "options":["options","in","this","form"]
    }
  ]
}

Добавить строку на этот лист:

POST: {{environment}}/sheets/{{sheetId}}/rows?include=objectValue

[
  {
    "toTop": true,
    "cells":
    [
      {
        "columnId":{{columnId}}, 
        "value": "1"
      },
      {
        "columnId":{{columnId2}}, 
        "objectValue": 
        {
          "objectType":"MULTI_PICKLIST",
          "values":["in", "form"]
        }
      } 
    ]
  }
]

Чтобы просмотреть лист с MULTI_PICKLIST objectValue:

GET: {{environment}}/sheets/{{sheetId}}?level=2&include=objectValue


Если выне включайте суффикс ?level=2&include=objectValue, тогда в ответе JSON столбцы будут выглядеть так, как если бы они были TEXT_NUMBER типов.


Для одного заключительного примечания разные группы конечных точек требуютразные уровни. Они следующие:

  • GET История ячейки 2-го уровня

  • GET Sheets уровня 2

  • GET Строка уровня 2

  • GET Колонка уровня 2

  • POST Сортировка уровня 2

  • GET Прицелы (приборные панели) уровня 3

  • GET отчеты уровня 3

...