Операции с данными

API Google Sheets позволяет вам манипулировать данными в электронных таблицах различными способами. Большую часть функций, доступных пользователям, работающим с пользовательским интерфейсом Sheets, также можно реализовать с помощью API Sheets. Примеры на этой странице иллюстрируют, как можно выполнять некоторые распространенные операции с электронными таблицами с помощью Sheets API.

Эти примеры представлены в виде HTTP-запросов, которые не зависят от языка. Чтобы узнать, как реализовать пакетное обновление на разных языках с помощью клиентских библиотек Google API, см. раздел Обновление электронных таблиц .

В этих примерах заполнители SPREADSHEET_ID и SHEET_ID указывают, где вы будете предоставлять эти идентификаторы. Идентификатор таблицы можно найти в URL-адресе таблицы. Вы можете получить идентификатор листа , используя метод spreadsheets.get . Диапазоны указаны с использованием обозначения A1 . Пример диапазона: Лист1!A1:D5.

Применить проверку данных к диапазону

В следующем примере кода spreadsheets.batchUpdate показано, как использовать SetDataValidationRequest для применения правила проверки данных, где «значение > 5», к каждой ячейке в диапазоне A1:D10.

Протокол запроса показан ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "setDataValidation": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "rule": {
          "condition": {
            "type": "NUMBER_GREATER",
            "values": [
              {
                "userEnteredValue": "5"
              }
            ]
          },
          "inputMessage": "Value must be > 5",
          "strict": true
        }
      }
    }
  ]
}

Копирование и вставка форматирования ячейки

В следующем образце кода spreadsheets.batchUpdate показано, как использовать CopyPasteRequest для копирования форматирования только в диапазоне A1:D10 и вставки его в диапазон F1:I10 на том же листе. Этот метод использует перечисление PasteType с PASTE_FORMAT только для вставки форматирования и проверки данных. Исходные значения в A1:D10 остаются неизменными.

Протокол запроса показан ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "copyPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 5,
          "endColumnIndex": 9
        },
        "pasteType": "PASTE_FORMAT",
        "pasteOrientation": "NORMAL"
      }
    }
  ]
}

Вырезать и вставлять ячейки

В следующем примере кода spreadsheets.batchUpdate показано, как использовать CutPasteRequest . Он вырезает диапазон A1:D10 и использует перечисление PasteType с PASTE_NORMAL для вставки его значений, формул, форматирования и объединения с диапазоном F1:I10 на одном листе. Содержимое исходной ячейки исходного диапазона удаляется.

Протокол запроса показан ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "cutPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "rowIndex": 0,
          "columnIndex": 5
        },
        "pasteType": "PASTE_NORMAL"
      }
    }
  ]
}

Повторение формулы в диапазоне

В следующем примере кода spreadsheets.batchUpdate показано, как использовать RepeatCellRequest для копирования формулы =FLOOR(A1*PI()) в диапазон B1:D10. Диапазон формулы автоматически увеличивается для каждой строки и столбца диапазона, начиная с верхней левой ячейки. Например, ячейка B1 имеет формулу =FLOOR(A1*PI()) , а ячейка D6 — формулу =FLOOR(C6*PI()) .

Протокол запроса показан ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 4
        },
        "cell": {
          "userEnteredValue": {
              "formulaValue": "=FLOOR(A1*PI())"
          }
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

Сортировка диапазона с несколькими спецификациями сортировки

В следующем образце кода spreadsheets.batchUpdate показано, как использовать SortRangeRequest для сортировки диапазона A1:D10: сначала по столбцу B в порядке возрастания, затем по столбцу C в порядке убывания, затем по столбцу D в порядке убывания.

Протокол запроса показан ниже.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "sortRange": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "sortSpecs": [
          {
            "dimensionIndex": 1,
            "sortOrder": "ASCENDING"
          },
          {
            "dimensionIndex": 2,
            "sortOrder": "DESCENDING"
          },
          {
            "dimensionIndex": 3,
            "sortOrder": "DESCENDING"
          }
        ]
      }
    }
  ]
}