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