表操作

您可以通过 Google Slides API 创建和编辑页面上的表格。本页上的示例展示了使用 presentations.batchUpdate 方法执行的一些常用表格操作。

这些示例使用以下变量:

  • PRESENTATION_ID - 表示您提供演示文稿 ID 的位置。您可以通过演示文稿网址查找此 ID 的值。
  • PAGE_ID - 表示您提供页面对象 ID 的位置。您可以从网址或使用 API 读取请求检索此 ID 的值。
  • TABLE_ID - 表示在何处提供正在处理的表格的页面元素对象 ID。您可以为您创建的元素指定此 ID(具有一些限制),也可以允许 Google 幻灯片 API 自动创建一个 ID。可以通过 API 读取请求检索元素 ID。

为保证语言中立性,这些示例以 HTTP 请求的形式呈现。如需了解如何使用 Google API 客户端库以不同语言实现批量更新,请参阅添加形状和文本

创建表

以下 presentations.batchUpdate 代码示例展示了如何使用 CreateTableRequest 方法向 PAGE_ID 指定的幻灯片添加表格。

此表格有八行五列。请注意,Google 幻灯片 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 都是从零开始的。

以下是用于删除表格行或列的请求协议:

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 均从 0 开始编号。

以下是修改表数据的请求协议:

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-pt Cambria 字体。然后,您需要针对标题中的每个其他单元格重复此请求。

locationcellLocation 中的 rowIndexcolumnIndex 均从 0 开始编号。

以下是用于设置表格标题行格式的请求协议:

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
      }
    }
  ]
}