資料作業

Google Sheets API 可讓你以多種方式處理試算表中的資料, 管理基礎架構在使用這項服務中, 試算表 UI 也適用於 試算表 API。本頁的例子將說明如何達成 運用 Sheets API 處理一些常見的試算表作業

這些範例是以 HTTP 要求的形式呈現 中立。如要瞭解如何使用 Google API 用戶端程式庫,請參閱 試算表

在這些範例中,預留位置 SPREADSHEET_IDSHEET_ID 代表這些 ID 的提供位置。您可以找到這份試算表 ID。您可以 工作表 ID spreadsheets.get 方法。 範圍是使用 A1 標記法來指定。一個 範例範圍是 Sheet1!A1:D5

將資料驗證套用至特定範圍

下列 spreadsheets.batchUpdate敬上 程式碼範例顯示如何使用 SetDataValidationRequest 即可套用資料驗證規則,其中「value」>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"
          }
        ]
      }
    }
  ]
}