기본 서식

Google Sheets API를 사용하면 스프레드시트 내에서 셀 및 범위의 서식을 업데이트할 수 있습니다. 이 페이지의 예에서는 Sheets API를 사용하여 수행할 수 있는 일반적인 서식 지정 작업을 보여줍니다. 조건부 서식 레시피 페이지에서 더 많은 조건부 서식의 예를 확인할 수 있습니다.

스프레드시트를 업데이트할 때 일부 요청 유형은 응답을 반환할 수 있습니다. 이러한 객체는 배열로 반환되며 각 응답은 해당 요청과 동일한 색인을 차지합니다. 일부 요청에는 응답이 없으며 응답은 비어 있습니다. 이러한 예의 응답 구조는 spreadsheets.batchUpdate에 있습니다.

이 예는 언어 중립을 위해 HTTP 요청의 형식으로 제공됩니다. Google API 클라이언트 라이브러리를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법은 스프레드시트 업데이트를 참고하세요.

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

위 동영상에서는 고정된 행 만들기, 셀 굵게 만들기, 통화 서식 구현, 셀 유효성 검사 수행, 셀 값 제한 등 다양한 방법으로 스프레드시트 셀의 서식을 지정하는 방법을 배웠습니다.

셀 테두리 수정

다음 spreadsheets.batchUpdate 코드 샘플은 UpdateBordersRequest를 사용하여 A1:F10 범위의 각 셀에 파란색의 점선 테두리와 하단 테두리를 지정하는 방법을 보여줍니다. innerHorizontal 필드는 범위 내부에 가로 테두리를 만듭니다. 필드를 생략하면 전체 범위의 위쪽과 아래쪽에만 테두리가 추가됩니다.

3x3 표로, 각 셀에는 위쪽과 아래쪽의 파선 테두리 테두리가 있습니다.
그림 1. 시트에서 각 셀의 상단 및 하단 파선 테두리의 서식을 지정합니다.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateBorders": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 6
        },
        "top": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "bottom": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "innerHorizontal": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
      }
    }
  ]
}

헤더 행 서식 지정

다음 spreadsheets.batchUpdate 코드 샘플은 RepeatCellRequest를 사용하여 시트에서 헤더 행의 형식을 지정하는 방법을 보여줍니다. 첫 번째 요청은 텍스트 색상, 배경 색상, 텍스트 글꼴 크기, 텍스트 정렬을 업데이트하고 텍스트를 굵게 만듭니다. range 필드에서 열 색인을 생략하면 전체 행의 서식이 지정됩니다. 두 번째 요청은 헤더 행이 고정되도록 시트 속성을 조정합니다.

시트에 서식이 지정된 헤더 행이 있는 3x3 표입니다.
그림 2. 시트의 헤더 행 서식을 지정합니다.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "backgroundColor": {
              "red": 0.0,
              "green": 0.0,
              "blue": 0.0
            },
            "horizontalAlignment" : "CENTER",
            "textFormat": {
              "foregroundColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              },
              "fontSize": 12,
              "bold": true
            }
          }
        },
        "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)"
      }
    },
    {
      "updateSheetProperties": {
        "properties": {
          "sheetId": SHEET_ID,
          "gridProperties": {
            "frozenRowCount": 1
          }
        },
        "fields": "gridProperties.frozenRowCount"
      }
    }
  ]
}

셀 병합

다음 spreadsheets.batchUpdate 코드 샘플은 MergeCellsRequest를 사용하여 셀을 병합하는 방법을 보여줍니다. 첫 번째 요청은 A1:B2 범위를 단일 셀로 병합합니다. 두 번째 요청은 A3:B6의 열을 병합하고 행은 그대로 둡니다.

시트에 병합된 셀이 있는 3x3 표입니다.
그림 3. 시트에서 셀을 병합합니다.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 2,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_ALL"
      }
    },
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 2,
          "endRowIndex": 6,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_COLUMNS"
      }
    },
  ]
}

범위의 맞춤 날짜/시간 또는 십진수 형식 설정

다음 spreadsheets.batchUpdate 코드 샘플은 RepeatCellRequest를 사용하여 맞춤 날짜/시간 및 숫자 형식을 갖도록 셀을 업데이트하는 방법을 보여줍니다. 첫 번째 요청은 A1:A10 범위의 셀에 커스텀 날짜/시간 형식 hh:mm:ss am/pm, ddd mmm dd yyyy을 제공합니다. 이 형식의 날짜/시간 예시로는 '02:05:07 PM, Sun Apr 03 2016'이 있습니다.

두 번째 요청은 B1:B10의 셀에 커스텀 숫자 형식 #,##0.0000를 제공합니다. 이 형식은 숫자를 쉼표 구분 기호로 그룹화해야 하고 소수점 뒤에 4자리가 있어야 하며 선행 0 한 개를 제외한 모든 숫자가 삭제되어야 함을 나타냅니다. 예를 들어 숫자 '3.14'는 '3.1400'으로 렌더링되고 '12345.12345'는 '12,345.1235'로 렌더링됩니다.

맞춤 날짜/시간 및 숫자 형식이 포함된 3x3 테이블입니다.
그림 4. 시트에서 맞춤 날짜/시간 및 숫자 형식을 사용하도록 셀을 업데이트합니다.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "DATE",
              "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    },
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 2
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "NUMBER",
              "pattern": "#,##0.0000"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    }
  ]
}