Табличные операции

API Google Slides позволяет создавать и редактировать таблицы на страницах. Примеры на этой странице демонстрируют некоторые распространённые операции с таблицами с использованием метода presentations.batchUpdate .

В этих примерах используются следующие переменные:

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

Создать таблицу

В следующем примере кода presentations.batchUpdate показано, как использовать метод CreateTableRequest для добавления таблицы к слайду, указанному PAGE_ID .

Эта таблица состоит из восьми строк и пяти столбцов. Обратите внимание, что API слайдов игнорирует любые поля size или transform , предоставленные в elementProperties . Вместо этого 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 . Индексы rowIndex и columnIndex в cellLocation отсчитываются от нуля.

Ниже приведен протокол запроса на удаление строк или столбцов таблицы:

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 . Соответствующая ячейка находится в пятой строке и третьем столбце. Индексы rowIndex и columnIndex в cellLocation отсчитываются от нуля.

Ниже представлен протокол запроса на редактирование данных таблицы:

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 для форматирования строки заголовка элемента таблицы в диапазоне tableRange , заданном параметром TABLE_ID . Затем метод TableCellProperties устанавливает чёрный цвет фона строки заголовка.

Каждый последующий запрос использует метод UpdateTextStyleRequest для установки полужирного белого шрифта Cambria размером 18 пунктов в одной ячейке строки заголовка в пределах textRange . Затем необходимо повторить этот запрос для каждой дополнительной ячейки в заголовке.

Параметры rowIndex и columnIndex в location и cellLocation отсчитываются от нуля.

Ниже представлен протокол запроса на форматирование строки заголовка таблицы:

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 . Индексы rowIndex и columnIndex в cellLocation начинаются с нуля.

Ниже приведен протокол запроса на вставку строк или столбцов таблицы:

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