Поддерживает ли SmartSheet какой-либо CURL для получения общего количества строк в листе? - PullRequest
0 голосов
/ 16 мая 2019

Я использую curl с REST для доступа к Smartshets в моем C #, работающем на WIN CE.Мое приложение должно периодически выводить некоторые данные в таблицу smartsheet.

Прежде чем писать на листе, я хотел бы узнать общее количество строк на листе, чтобы не превышать 5000 строк на листе.

Я ищу API, который бы возвращал только количество строк с учетом идентификатора листа?

В настоящее время используется API ниже, который возвращает все данные листа и занимает очень много времени для извлечения и форматирования.curl https://api.smartsheet.com/2.0/sheets/{sheetId}

с данными до 5000 строк на листе, требуется очень много времени для извлечения и форматирования ответа ниже для определения доступных строк:

{
  "id": 4583173393803140,
  "name": "sheet 1",
  "version": 6,
  "totalRowCount": 240,
  "accessLevel": "OWNER",
  "effectiveAttachmentOptions": [
    "EVERNOTE",
    "GOOGLE_DRIVE",
    "EGNYTE",
    "FILE",
    "ONEDRIVE",
    "DROPBOX",
    "BOX_COM"
  ],
  "readOnly": true,
  "ganttEnabled": true,
  "dependenciesEnabled": true,
  "resourceManagementEnabled": true,
  "cellImageUploadEnabled": true,
  "userSettings": {
    "criticalPathEnabled": false,
    "displaySummaryTasks": true
  },
  "userPermissions": {
    "summaryPermissions": "ADMIN"
  },
  "workspace": {
    "id": 825898975642500,
    "name": "New Workspace"
  },
  "projectSettings": {
    "workingDays": [
      "MONDAY",
      "TUESDAY",
      "WEDNESDAY"
    ],
    "nonWorkingDays": [],
    "lengthOfDay": 8
  },
  "hasSummaryFields": false,
  "permalink": "https://app.smartsheet.com/b/home?lx=pWNSDH9itjBXxBzFmyf-5w",
  "createdAt": "2018-09-24T20:27:57Z",
  "modifiedAt": "2018-09-26T20:45:08Z",
  "columns": [
    {
      "id": 4583173393803140,
      "version": 0,
      "index": 0,
      "primary": true,
      "title": "Primary Column",
      "type": "TEXT_NUMBER",
      "validation": false
    },
    {
      "id": 2331373580117892,
      "version": 0,
      "index": 1,
      "options": [
        "new",
        "in progress",
        "completed"
      ],
      "title": "status",
      "type": "PICKLIST",
      "validation": true
    }
  ],
  "rows": Array[4962]....
}

Любая помощь будетб очень ценится. enter code here

1 Ответ

0 голосов
/ 16 мая 2019

Нет запроса на конкретное возвращение количества строк в Sheet. Но с любой операцией GET /sheets/{sheetId} полученный объект Sheet будет иметь атрибут верхнего уровня totalRowCount. Таким образом, вам не нужно GET лист и считать объекты в массиве rows. Вместо этого вы можете обратиться к атрибуту totalRowCount и его значению, чтобы узнать, сколько строк в настоящий момент находится на листе.

Если вы беспокоитесь о сбрасывании всех данных Sheet, вы можете использовать paging , чтобы избежать возврата всех данных. Выполнение GET /sheets/{sheetId}?pageSize=1 даст вам объект Sheet только с первой строкой данных, что поможет уменьшить полезную нагрузку. Атрибут totalRowCount все еще будет присутствовать в ответе.

...