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
을 지정합니다. 이 형식의 날짜 시간 예시는 '2016년 4월 3일 일요일 오후 2시 5분 7초'입니다.
두 번째 요청은 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" } } ] }