시트 작업

Google Sheets API를 사용하면 시트를 만들고, 지우고, 복사하고, 삭제할 뿐만 아니라 시트의 속성을 제어할 수도 있습니다. 이 페이지의 예에서는 Sheets API를 사용하여 일반적인 스프레드시트 작업을 수행하는 방법을 보여줍니다.

이 예시는 언어 중립적인 HTTP 요청의 형태로 제공됩니다. Google API 클라이언트 라이브러리를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법을 알아보려면 스프레드시트 업데이트를 참고하세요.

이 예시에서 자리표시자 SPREADSHEET_IDSHEET_ID는 해당 ID를 입력하는 위치를 나타냅니다. 스프레드시트 URL에서 스프레드시트 ID를 확인할 수 있습니다. spreadsheets.get 메서드를 사용하여 시트 ID를 가져올 수 있습니다. 범위는 A1 표기법을 사용하여 지정됩니다. 예시 범위는 Sheet1!A1:D5입니다.

시트 추가

다음 spreadsheets.batchUpdate 코드 샘플은 AddSheetRequest를 사용하여 시트를 스프레드시트에 추가하고 제목, 그리드 크기, 탭 색상을 설정하는 방법을 보여줍니다.

응답은 AddSheetResponse로 구성되며, 여기에는 생성된 시트의 속성 (예: SHEET_ID)이 있는 객체가 포함됩니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addSheet": {
        "properties": {
          "title": "Deposits",
          "gridProperties": {
            "rowCount": 20,
            "columnCount": 12
          },
          "tabColor": {
            "red": 1.0,
            "green": 0.3,
            "blue": 0.4
          }
        }
      }
    }
  ]
}

서식을 유지하면서 시트의 모든 값 지우기

다음 spreadsheets.batchUpdate 코드 샘플은 UpdateCellsRequest를 사용하여 형식을 변경하지 않고 시트에서 모든 값을 삭제하는 방법을 보여줍니다.

해당 값을 제공하지 않고 userEnteredValue 필드를 지정하면 범위의 값을 지우라는 명령으로 해석됩니다. 이 설정은 다른 필드에도 사용할 수 있습니다. 예를 들어 fields 값을 userEnteredFormat로 변경하면 시트에서 Sheets API에서 지원하는 모든 서식이 삭제되지만 셀 값은 변경되지 않습니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
        "range": {
          "sheetId": SHEET_ID
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

한 스프레드시트에서 다른 스프레드시트로 시트 복사

다음 spreadsheet.sheets.copyTo 코드 샘플은 SHEET_ID로 지정된 단일 시트를 한 스프레드시트에서 다른 스프레드시트로 복사하는 방법을 보여줍니다.

요청 본문의 TARGET_SPREADSHEET_ID 변수는 대상 스프레드시트를 지정합니다. 사본은 원본의 모든 값, 서식, 수식, 기타 속성을 유지합니다. 복사된 시트의 제목은 '[원본 시트 제목]의 사본'으로 설정됩니다.

응답은 생성된 시트의 속성을 설명하는 SheetProperties 객체로 구성됩니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/sheets/SHEET_ID:copyTo
{
  "destinationSpreadsheetId": "TARGET_SPREADSHEET_ID"
}

시트 삭제

다음 spreadsheets.batchUpdate 코드 샘플은 DeleteSheetRequest를 사용하여 SHEET_ID로 지정된 시트를 삭제하는 방법을 보여줍니다.

요청 프로토콜은 아래와 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteSheet": {
        "sheetId": SHEET_ID
      }
    }
  ]
}

시트 데이터 읽기

다음 spreadsheets.get 코드 샘플은 SHEET_IDSPREADSHEET_ID로 지정된 스프레드시트에서 시트 속성 정보를 가져오는 방법을 보여줍니다. 이 메서드는 특정 스프레드시트 내 시트의 메타데이터를 결정하는 데 자주 사용되므로 추가 작업에서 이러한 시트를 타겟팅할 수 있습니다. fields 쿼리 매개변수는 셀 값 데이터 또는 전체 스프레드시트와 관련된 데이터가 아닌 시트 속성 데이터만 반환되어야 함을 지정합니다.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?&fields=sheets.properties

응답은 SheetProperties 요소가 있는 Sheet 객체가 포함된 Spreadsheet 리소스로 구성됩니다. 지정된 응답 필드가 기본값으로 설정된 경우 응답에서 생략됩니다.

{
  "sheets": [
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "Sheet1",
        "index": 0,
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 100,
          "columnCount": 20,
          "frozenRowCount": 1
        }
        "tabColor": {
          "blue": 1.0
        }
      },
      ...
  ],
}