Toán tử bảng

API Google Trang trình bày cho phép bạn tạo và chỉnh sửa bảng trên trang. Các ví dụ trên trang này cho thấy một số thao tác phổ biến trong bảng bằng phương thức presentations.batchUpdate.

Những ví dụ này sử dụng các biến sau:

  • PRESENTATION_ID – Cho biết nơi bạn cung cấp mã nhận dạng bản trình bày. Bạn có thể khám phá giá trị của mã nhận dạng này qua URL của bản trình bày.
  • PAGE_ID – Cho biết nơi bạn cung cấp mã đối tượng trang. Bạn có thể truy xuất giá trị cho truy vấn này từ URL hoặc bằng cách sử dụng yêu cầu đọc API.
  • TABLE_ID – Cho biết nơi bạn cung cấp mã đối tượng của phần tử trang cho bảng mà bạn đang làm việc. Bạn có thể chỉ định mã nhận dạng này cho các phần tử bạn tạo (với một số quy định hạn chế) hoặc cho phép API Trang trình bày tự động tạo một giá trị. Bạn có thể truy xuất mã phần tử thông qua yêu cầu đọc API.

Những ví dụ này được trình bày dưới dạng yêu cầu HTTP để trung lập về ngôn ngữ. Để tìm hiểu cách triển khai bản cập nhật hàng loạt bằng nhiều ngôn ngữ bằng thư viện ứng dụng API của Google, hãy xem phần Thêm hình dạng và văn bản.

Tạo bảng

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức CreateTableRequest để thêm bảng vào trang trình bày do PAGE_ID chỉ định.

Bảng này có 8 hàng và 5 cột. Lưu ý rằng API Trang trình bày bỏ qua mọi trường size hoặc transform được cung cấp trong elementProperties. Thay vào đó, API sẽ tạo một bảng gần như được căn giữa trên trang trình bày và có kích thước phù hợp với số hàng và cột được chỉ định, nếu có thể.

Sau đây là giao thức yêu cầu để tạo bảng:

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

Xoá hàng hoặc cột của bảng

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức DeleteTableRowRequest để xoá hàng thứ 6. Sau đó, phương thức này sẽ dùng phương thức DeleteTableColumnRequest để xoá cột thứ tư. Bảng do TABLE_ID chỉ định. Cả rowIndexcolumnIndex trong cellLocation đều dựa trên 0.

Sau đây là giao thức yêu cầu xoá các hàng hoặc cột của bảng:

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

Chỉnh sửa dữ liệu bảng

Mã mẫu presentations.batchUpdate sau đây cho biết cách dùng phương thức DeleteTextRequest để xoá tất cả văn bản trong một ô trong textRange. Sau đó, phương thức này sử dụng phương thức InsertTextRequest để thay thế bằng văn bản mới là "Kangaroo".

Bảng này do TABLE_ID chỉ định. Ô bị ảnh hưởng nằm ở hàng thứ năm và cột thứ ba. Cả rowIndexcolumnIndex trong cellLocation đều dựa trên 0.

Sau đây là giao thức yêu cầu để chỉnh sửa dữ liệu bảng:

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

Định dạng hàng tiêu đề bảng

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức UpdateTableCellPropertiesRequest để định dạng hàng tiêu đề của một phần tử trong bảng, trong tableRange, do TABLE_ID chỉ định. Sau đó, phương thức này sẽ sử dụng phương thức TableCellProperties để đặt màu nền của hàng tiêu đề thành đen.

Mỗi yêu cầu sau đây sử dụng phương thức UpdateTextStyleRequest để đặt định dạng văn bản trong một ô của hàng tiêu đề thành phông chữ Cambria màu trắng, đậm 18 pt trong textRange. Sau đó, bạn cần lặp lại yêu cầu này cho từng ô bổ sung trong tiêu đề.

Cả rowIndexcolumnIndex trong locationcellLocation đều dựa trên 0.

Sau đây là giao thức yêu cầu để định dạng hàng tiêu đề của bảng:

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

Dưới đây là giao diện của hàng tiêu đề được định dạng sau những nội dung cập nhật này:

Kết quả công thức định dạng hàng tiêu đề.

Chèn hàng hoặc cột của bảng

Mã mẫu presentations.batchUpdate sau đây cho biết cách sử dụng phương thức InsertTableRowsRequest để thêm 3 hàng bên dưới hàng thứ sáu. Sau đó, phương thức này sẽ sử dụng phương thức InsertTableColumnsRequest để thêm 2 cột ở bên trái cột thứ tư trong cùng một bảng.

Bảng này do TABLE_ID chỉ định. Cả rowIndexcolumnIndex trong cellLocation đều dựa trên 0.

Sau đây là giao thức yêu cầu để chèn hàng hoặc cột của bảng:

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