Google Sheets API를 사용하면 스프레드시트 내에서 셀 및 범위의 서식을 업데이트할 수 있습니다. 이 페이지의 예에서는 Sheets API를 사용하여 수행할 수 있는 일반적인 서식 지정 작업을 보여줍니다. 조건부 서식 레시피 페이지에서 더 많은 조건부 서식의 예를 확인할 수 있습니다.
스프레드시트를 업데이트할 때 일부 요청 유형은 응답을 반환할 수 있습니다.
이러한 객체는 배열로 반환되며 각 응답은 해당 요청과 동일한 색인을 차지합니다. 일부 요청에는 응답이 없으며 응답은 비어 있습니다. 이러한 예의 응답 구조는 spreadsheets.batchUpdate
에 있습니다.
이 예는 언어 중립을 위해 HTTP 요청의 형식으로 제공됩니다. Google API 클라이언트 라이브러리를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법은 스프레드시트 업데이트를 참고하세요.
다음 예에서 자리표시자 SPREADSHEET_ID와 SHEET_ID는 이러한 ID를 제공할 위치를 나타냅니다. 스프레드시트 URL에서 스프레드시트
ID를 찾을 수 있습니다. spreadsheets.get
메서드를 사용하여 시트 ID를 가져올 수 있습니다. 범위는 A1 표기법을 사용하여 지정됩니다. 범위의 예는 Sheet1!A1:D5입니다.
위 동영상에서는 고정된 행 만들기, 셀 굵게 만들기, 통화 서식 구현, 셀 유효성 검사 수행, 셀 값 제한 등 다양한 방법으로 스프레드시트 셀의 서식을 지정하는 방법을 배웠습니다.
셀 테두리 수정
다음 spreadsheets.batchUpdate
코드 샘플은 UpdateBordersRequest
를 사용하여 A1:F10 범위의 각 셀에 파란색의 점선 테두리와 하단 테두리를 지정하는 방법을 보여줍니다. innerHorizontal
필드는 범위 내부에 가로 테두리를 만듭니다.
필드를 생략하면 전체 범위의 위쪽과 아래쪽에만 테두리가 추가됩니다.
요청 프로토콜은 아래와 같습니다.
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
필드에서 열 색인을 생략하면 전체 행의 서식이 지정됩니다. 두 번째 요청은 헤더 행이 고정되도록 시트 속성을 조정합니다.
요청 프로토콜은 아래와 같습니다.
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의 열을 병합하고 행은 그대로 둡니다.
요청 프로토콜은 아래와 같습니다.
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'로 렌더링됩니다.
요청 프로토콜은 아래와 같습니다.
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" } } ] }