Operacje na tabelach

Interfejs Google Slides API umożliwia tworzenie i edytowanie tabel na stronach. Przykłady na tej stronie pokazują typowe operacje na tabelach z użyciem metody presentations.batchUpdate.

W tych przykładach używamy tych zmiennych:

  • PRESENTATION_ID– wskazuje, gdzie podajesz identyfikator prezentacji. Wartość tego identyfikatora znajdziesz w adresie URL prezentacji.
  • PAGE_ID – wskazuje miejsce, w którym podajesz identyfikatory obiektów strony. Wartość tego parametru możesz pobrać z adresu URL lub za pomocą żądania odczytu interfejsu API.
  • TABLE_ID– wskazuje miejsce, w którym podajesz identyfikator obiektu elementu strony w przypadku tabeli, z którą pracujesz. Możesz określić ten identyfikator dla tworzonych elementów (z pewnymi ograniczeniami) lub zezwolić interfejsowi Slides API na automatyczne utworzenie identyfikatora. Identyfikatory elementów można pobrać za pomocą żądania odczytu interfejsu API.

Przykłady te są przedstawione jako żądania HTTP, aby były niezależne od języka. Aby dowiedzieć się, jak wdrożyć aktualizację zbiorczą w różnych językach za pomocą bibliotek klienta interfejsu Google API, przeczytaj artykuł Dodawanie kształtów i tekstu.

Tworzenie tabeli

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody CreateTableRequest dodać tabelę do slajdu określonego przez PAGE_ID.

Ta tabela ma 8 wierszy i 5 kolumn. Pamiętaj, że interfejs Slides API ignoruje wszystkie pola size lub transform podane w ramach elementProperties. Zamiast tego interfejs API tworzy tabelę, która jest mniej więcej wyśrodkowana na slajdzie i ma rozmiar umożliwiający umieszczenie określonej liczby wierszy i kolumn (jeśli to możliwe).

Oto protokół żądania tworzenia tabeli:

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

Usuwanie wierszy i kolumn tabeli

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody DeleteTableRowRequest usunąć szósty wiersz. Następnie używa metody DeleteTableColumnRequest do usunięcia czwartej kolumny. Tabela jest określana przez TABLE_ID. Wartości rowIndex i columnIndex w atrybucie cellLocation są oparte na indeksowaniu od zera.

Protokół żądania usuwania wierszy lub kolumn tabeli jest następujący:

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

Edytowanie danych tabeli

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody DeleteTextRequest usunąć cały tekst z komórki w obrębie elementu textRange. Następnie używa metody InsertTextRequest, aby zastąpić go nowym tekstem „Kangaroo”.

Tabela jest określana przez TABLE_ID. Komórka, której dotyczy problem, znajduje się w piątym wierszu i trzeciej kolumnie. Wartości atrybutów rowIndex i columnIndex w atrybucie cellLocation są oparte na zerze.

Oto protokół żądania edytowania danych tabeli:

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

Formatowanie wiersza nagłówka tabeli

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak użyć metody UpdateTableCellPropertiesRequest do sformatowania wiersza nagłówka elementu tabeli w obrębie elementu tableRange określonego przez TABLE_ID. Następnie używa metody TableCellProperties do ustawienia koloru tła wiersza nagłówka na czarny.

Każde kolejne żądanie używa metody UpdateTextStyleRequest do ustawienia formatu tekstu w jednej komórce wiersza nagłówka na pogrubioną, białą czcionkę Cambria o rozmiarze 18 punktów w ramach metody textRange. Następnie musisz powtórzyć to żądanie w przypadku każdej dodatkowej komórki w nagłówku.

Wartości rowIndex i columnIndex w atrybutach location i cellLocation są liczone od zera.

Poniżej znajdziesz protokół żądania formatowania wiersza nagłówka tabeli:

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

Po wprowadzeniu tych zmian sformatowany wiersz nagłówka wygląda tak:

Formatowanie wiersza nagłówka w wyniku przepisu.

Wstawianie wierszy i kolumn tabeli

Poniższy przykładowy kod presentations.batchUpdate pokazuje, jak za pomocą metody InsertTableRowsRequest dodać 3 wiersze pod 6 wierszem. Następnie używa metody InsertTableColumnsRequest do dodania 2 kolumn po lewej stronie czwartej kolumny w tej samej tabeli.

Tabela jest określana przez TABLE_ID. Zarówno rowIndex, jak i columnIndex w cellLocation są oparte na zerze.

Oto protokół żądania wstawiania wierszy lub kolumn tabeli:

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