테이블 작업

Google Slides API를 사용하면 페이지에서 표를 만들고 수정할 수 있습니다. 이 페이지의 예시에서는 presentations.batchUpdate 메서드를 사용한 몇 가지 일반적인 테이블 작업을 보여줍니다.

이 예에서는 다음 변수를 사용합니다.

  • PRESENTATION_ID: 프레젠테이션 ID를 입력하는 위치를 나타냅니다. 프레젠테이션 URL에서 이 ID 값을 확인할 수 있습니다.
  • PAGE_ID: 페이지 객체 ID를 제공하는 위치를 나타냅니다. 이 값은 URL에서 가져오거나 API 읽기 요청을 사용하여 검색할 수 있습니다.
  • TABLE_ID: 작업 중인 테이블의 페이지 요소 객체 ID를 제공하는 위치를 나타냅니다. 생성한 요소에 이 ID를 지정하거나(몇 가지 제한사항) Slides API에서 자동으로 ID를 만들도록 할 수 있습니다. 요소 ID는 API 읽기 요청을 통해 가져올 수 있습니다.

이 예는 언어 중립적인 HTTP 요청으로 표시됩니다. Google API 클라이언트 라이브러리를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법은 도형 및 텍스트 추가를 참고하세요.

테이블 만들기

다음 presentations.batchUpdate 코드 샘플은 CreateTableRequest 메서드를 사용하여 PAGE_ID에서 지정된 슬라이드에 테이블을 추가하는 방법을 보여줍니다.

이 표에는 8개의 행과 5개의 열이 있습니다. Slides API는 elementProperties의 일부로 제공된 모든 size 또는 transform 필드를 무시합니다. 대신 API는 가능한 경우 지정된 수의 행과 열을 수용할 수 있도록 슬라이드의 대략적으로 중앙에 배치된 테이블을 만듭니다.

다음은 테이블을 만들기 위한 요청 프로토콜입니다.

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

표의 행 또는 열 삭제하기

다음 presentations.batchUpdate 코드 샘플은 DeleteTableRowRequest 메서드를 사용하여 6번째 행을 삭제하는 방법을 보여줍니다. 그런 다음 DeleteTableColumnRequest 메서드를 사용하여 네 번째 열을 삭제합니다. 테이블은 TABLE_ID로 지정됩니다. cellLocation 내의 rowIndexcolumnIndex는 모두 0 기반입니다.

다음은 테이블 행 또는 열을 삭제하는 요청 프로토콜입니다.

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

테이블 데이터 수정

다음 presentations.batchUpdate 코드 샘플은 DeleteTextRequest 메서드를 사용하여 textRange 내 셀의 모든 텍스트를 삭제하는 방법을 보여줍니다. 그런 다음 InsertTextRequest 메서드를 사용하여 'Kangaroo'라는 새 텍스트로 바꿉니다.

테이블은 TABLE_ID로 지정됩니다. 영향을 받은 셀은 5번째 행과 3번째 열에 있습니다. cellLocation 내의 rowIndexcolumnIndex는 모두 0 기반입니다.

다음은 테이블 데이터를 편집하기 위한 요청 프로토콜입니다.

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

표 헤더 행 서식 지정

다음 presentations.batchUpdate 코드 샘플은 TABLE_ID에 의해 지정된 tableRange 내에서 UpdateTableCellPropertiesRequest 메서드를 사용하여 테이블 요소의 헤더 행 형식을 지정하는 방법을 보여줍니다. 그런 다음 TableCellProperties 메서드를 사용하여 헤더 행의 배경색을 검은색으로 설정합니다.

다음 각 요청은 UpdateTextStyleRequest 메서드를 사용하여 헤더 행의 한 셀에 있는 텍스트 형식을 textRange 내에서 굵은 흰색 18포인트 캄브리아 글꼴로 설정합니다. 그런 다음 헤더의 추가 셀에 이 요청을 반복해야 합니다.

locationcellLocation 내의 rowIndexcolumnIndex는 모두 0을 기반으로 합니다.

다음은 테이블 헤더 행의 형식을 지정하는 요청 프로토콜입니다.

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

이러한 업데이트 후에 형식이 지정된 헤더 행은 다음과 같이 표시됩니다.

헤더 행 서식 지정 레시피 결과

표의 행 또는 열 삽입

다음 presentations.batchUpdate 코드 샘플은 InsertTableRowsRequest 메서드를 사용하여 6번째 행 아래에 3개의 행을 추가하는 방법을 보여줍니다. 그런 다음 InsertTableColumnsRequest 메서드를 사용하여 동일한 테이블의 네 번째 열 왼쪽에 두 개의 열을 추가합니다.

테이블은 TABLE_ID로 지정됩니다. cellLocation 내의 rowIndexcolumnIndex는 모두 0 기반입니다.

다음은 테이블 행 또는 열을 삽입하기 위한 요청 프로토콜입니다.

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