Toán tử bảng

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

Các ví dụ này sử dụng những 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ể tìm thấy giá trị của mã nhận dạng này trong URL trình bày.
  • PAGE_ID – Cho biết nơi bạn cung cấp mã nhận dạng đối tượng trang. Bạn có thể truy xuất giá trị cho tham số 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ã nhận dạng đối tượng phần tử trang cho một bảng mà bạn đang thao tác. Bạn có thể chỉ định mã nhận dạng này cho các phần tử mà bạn tạo (với một số hạn chế) hoặc cho phép Slides API tự động tạo mã nhận dạng. Bạn có thể truy xuất mã nhận dạng phần tử thông qua yêu cầu đọc API.

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

Tạo bảng

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

Bảng này có 8 hàng và 5 cột. Xin lưu ý rằng Slides API sẽ 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 đúng trên trang trình bày và có kích thước phù hợp với số hàng và cột đã 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 trong bảng

Mẫu mã presentations.batchUpdate sau đây cho biết cách sử dụng phương thức DeleteTableRowRequest để xoá hàng thứ sáu. Sau đó, nó sẽ dùng phương thức DeleteTableColumnRequest để xoá cột thứ tư. Bảng được chỉ định theo TABLE_ID. Cả rowIndexcolumnIndex trong cellLocation đều dựa trên số 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 trong bảng

Mẫu mã presentations.batchUpdate sau đây cho thấy 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 "Kangaroo".

Bảng được chỉ định theo TABLE_ID. Ô 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 số 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 đề của bảng

Mẫu mã presentations.batchUpdate sau đây cho thấy 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 này sẽ dùng phương thức TableCellProperties để đặt màu nền của hàng tiêu đề thành màu đen.

Mỗi yêu cầu sau đây đều 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 in đậm, màu trắng, cỡ chữ 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 số 0.

Sau đây là giao thức yêu cầu để định dạng một 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....
  ]
}

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

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

Chèn hàng hoặc cột vào 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ứ tư trong cùng một bảng.

Bảng được chỉ định theo TABLE_ID. Cả rowIndexcolumnIndex trong cellLocation đều dựa trên số 0.

Sau đây là giao thức yêu cầu để chèn các 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
      }
    }
  ]
}