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 minh hoạ một số thao tác phổ biến đối với 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 vị trí 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ị cho mã nhận dạng này từ URL của bản trình bày.
  • PAGE_ID – Cho biết vị trí bạn cung cấp mã đối tượng trang. Bạn có thể truy xuất giá trị cho URL này từ URL hoặc bằng cách sử dụng yêu cầu đọc API.
  • TABLE_ID – Cho biết vị trí bạn cung cấp mã đối tượng phần tử trang cho bảng 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ố hạn chế) hoặc cho phép API Trang trình bày tự động tạo. 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 nhằm đảm bảo trung lập về ngôn ngữ. Để tìm hiểu cách triển khai việc cập nhật theo lô ở 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 một 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 được căn giữa gần như 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 DeleteTableColumnRequest để xoá cột thứ tư. 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 xoá hàng hoặc cột trong 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 sử 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ử bảng, trong tableRange, do TABLE_ID chỉ định. Sau đó, phương thức TableCellProperties sử dụng để đặt màu nền của hàng tiêu đề thành màu đ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 18 pt trắng đậm 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 đề 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....
  ]
}

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

Định dạng kết quả công thức 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ứ 6. Sau đó, phương thức này sử dụng phương thức InsertTableColumnsRequest để thêm 2 cột vào bên trái cột thứ 4 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 trong 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
      }
    }
  ]
}