資料表作業

Google Slides API 可讓您在頁面上建立及編輯表格。本頁的範例會說明使用 presentations.batchUpdate 方法的常見表格作業。

這些範例使用下列變數:

  • PRESENTATION_ID:指出您提供簡報 ID的位置。您可以從簡報網址中找出這個 ID 的值。
  • PAGE_ID:表示您提供頁面物件 ID的位置。您可以從網址或透過 API 讀取要求擷取此值。
  • TABLE_ID:指出您要為所用表格提供頁面元素物件 ID的位置。您可以為所建立的元素指定此 ID (並附帶一些限制),或是讓 Slides API 自動建立。您可以透過 API 讀取要求擷取元素 ID。

這些範例會以 HTTP 要求的形式呈現,以便在不同語言中使用。如要瞭解如何使用 Google API 用戶端程式庫,以不同語言實作批次更新,請參閱「新增形狀和文字」一文。

建立表格

以下 presentations.batchUpdate 程式碼範例說明如何使用 CreateTableRequest 方法,在 PAGE_ID 指定的幻燈片中加入資料表。

這個表格有八列和五欄。請注意,幻燈片 API 會忽略 elementProperties 中提供的任何 sizetransform 欄位。相反地,API 會建立一個大致位於投影片中間的資料表,並盡可能調整大小,以便容納指定的列數和欄數。

以下是建立資料表的請求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createTable": {
        "objectId": TABLE_ID,
        "elementProperties": {
          "pageObjectId": PAGE_ID,
        },
        "rows": 8,
        "columns": 5
      }
    }
  ]
}

刪除表格列或欄

以下 presentations.batchUpdate 程式碼範例說明如何使用 DeleteTableRowRequest 方法移除第六列。然後使用 DeleteTableColumnRequest 方法移除第四欄。資料表是由 TABLE_ID 指定。cellLocation 中的 rowIndexcolumnIndex 都是以 0 為基底。

以下是刪除表格資料列或欄的請求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteTableRow": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 5
        }
      }
    },
    {
      "deleteTableColumn": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "columnIndex": 3
        }
      }
    }
  ]
}

編輯資料表資料

以下 presentations.batchUpdate 程式碼範例說明如何使用 DeleteTextRequest 方法,移除 textRange 內儲存格中的所有文字。然後使用 InsertTextRequest 方法,將其替換為「Kangaroo」的新文字。

資料表是由 TABLE_ID 指定。受影響的儲存格位於第五列和第三欄。cellLocation 中的 rowIndexcolumnIndex 都是以零為基礎。

以下是編輯表格資料的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 4,
          "columnIndex": 2
        },
        "textRange": {
          "type": "ALL",
        }
      }
    },
    {
      "insertText": {
        "objectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 4,
          "columnIndex": 2
        },
        "text": "Kangaroo",
        "insertionIndex": 0
      }
    }
  ]
}

設定表格標頭列的格式

以下 presentations.batchUpdate 程式碼範例說明如何使用 UpdateTableCellPropertiesRequest 方法,在 TABLE_ID 指定的 tableRange 中,為表格元素的標題列設定格式。接著,使用 TableCellProperties 方法將標題列的背景顏色設為黑色。

以下每個要求都會使用 UpdateTextStyleRequest 方法,將標頭列中一個儲存格的文字格式設為 textRange 中的粗體白色 18 點 Cambria 字型。接著,您需要針對標頭中的每個額外儲存格重複這項要求。

locationcellLocation 中的 rowIndexcolumnIndex 都以零為基準。

以下是設定表格標題列格式的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateTableCellProperties": {
        "objectId": TABLE_ID,
        "tableRange": {
          "location": {
            "rowIndex": 0,
            "columnIndex": 0
          },
          "rowSpan": 1,
          "columnSpan": 3
        },
        "tableCellProperties": {
          "tableCellBackgroundFill": {
            "solidFill": {
              "color": {
                "rgbColor": {
                  "red": 0.0,
                  "green": 0.0,
                  "blue": 0.0
                }
              }
            }
          }
        },
        "fields": "tableCellBackgroundFill.solidFill.color"
      }
    },
    {
      "updateTextStyle": {
        "objectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 0,
          "columnIndex": 0
        },
        "style": {
          "foregroundColor": {
            "opaqueColor": {
              "rgbColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              }
            }
          },
          "bold": true,
          "fontFamily": "Cambria",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        },
        "textRange": {
          "type": "ALL"
        },
        "fields": "foregroundColor,bold,fontFamily,fontSize"
      }
    },
    // Repeat the above request for each additional cell in the header row....
  ]
}

更新後的標題列格式如下:

格式化標題列食譜結果。

插入表格列或欄

以下 presentations.batchUpdate 程式碼範例說明如何使用 InsertTableRowsRequest 方法,在第六列下方新增三列。接著,它會使用 InsertTableColumnsRequest 方法,在同一張表格的第四欄左側新增兩個欄。

資料表是由 TABLE_ID 指定。cellLocation 中的 rowIndexcolumnIndex 都是以零為基準。

以下是插入表格資料列或欄的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "insertTableRows": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 5
        },
        "insertBelow": true,
        "number": 3
      }
    },
    {
      "insertTableColumns": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "columnIndex": 3
        },
        "insertRight": false,
        "number": 2
      }
    }
  ]
}