Google Sheets API를 사용하면 스프레드시트 내의 데이터를 다양한 방식으로 조작할 수 있습니다. Sheets UI를 사용하는 사용자가 사용할 수 있는 대부분의 기능은 Sheets API에서도 사용할 수 있습니다. 이 페이지의 예시는 Sheets API로 일반적인 스프레드시트 작업을 수행하는 방법을 보여줍니다.
이 예시는 언어 중립적인 HTTP 요청의 형태로 제공됩니다. Google API 클라이언트 라이브러리를 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법을 알아보려면 스프레드시트 업데이트를 참고하세요.
이 예시에서 자리표시자 SPREADSHEET_ID
및 SHEET_ID
는 해당 ID를 입력하는 위치를 나타냅니다. 스프레드시트 URL에서 스프레드시트 ID를 확인할 수 있습니다. spreadsheets.get
메서드를 사용하여 시트 ID를 가져올 수 있습니다. 범위는 A1 표기법을 사용하여 지정됩니다. 예시 범위는 Sheet1!A1:D5입니다.
데이터 유효성 검사를 특정 범위에 적용
다음 spreadsheets.batchUpdate
코드 샘플은 SetDataValidationRequest
를 사용하여 A1:D10 범위의 모든 셀에 '값 > 5'라는 데이터 유효성 검사 규칙을 적용하는 방법을 보여줍니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"setDataValidation": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"rule": {
"condition": {
"type": "NUMBER_GREATER",
"values": [
{
"userEnteredValue": "5"
}
]
},
"inputMessage": "Value must be > 5",
"strict": true
}
}
}
]
}
셀 서식 복사 및 붙여넣기
다음 spreadsheets.batchUpdate
코드 샘플은 CopyPasteRequest
를 사용하여 A1:D10 범위의 서식만 복사하고 동일한 시트의 F1:I10 범위에 붙여넣는 방법을 보여줍니다. 이 메서드는 PASTE_FORMAT
와 함께 PasteType
enum을 사용하여 형식 지정 및 데이터 유효성 검사만 붙여넣습니다. A1:D10의 원래 값은 변경되지 않습니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "copyPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 5, "endColumnIndex": 9 }, "pasteType": "PASTE_FORMAT", "pasteOrientation": "NORMAL" } } ] }
셀 잘라내기 및 붙여넣기
다음 spreadsheets.batchUpdate
코드 샘플은 CutPasteRequest
를 사용하는 방법을 보여줍니다.
A1:D10 범위를 잘라내고 PASTE_NORMAL
와 함께 PasteType
enum을 사용하여 값, 수식, 서식을 붙여넣고 동일한 시트의 F1:I10 범위에 병합합니다. 원본 소스 범위의 셀 내용은 제거됩니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "cutPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "rowIndex": 0, "columnIndex": 5 }, "pasteType": "PASTE_NORMAL" } } ] }
특정 범위에서 수식 반복
다음 spreadsheets.batchUpdate
코드 샘플은 RepeatCellRequest
를 사용하여 =FLOOR(A1*PI())
수식을 B1:D10 범위에 복사하는 방법을 보여줍니다. 왼쪽 위 셀부터 시작하여, 해당 범위의 각 행과 열에 대해 수식의 범위가 자동으로 증가합니다. 예를 들어 셀 B1에는 수식 =FLOOR(A1*PI())
가 있고 셀 D6에는 수식 =FLOOR(C6*PI())
가 있습니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"repeatCell": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 1,
"endColumnIndex": 4
},
"cell": {
"userEnteredValue": {
"formulaValue": "=FLOOR(A1*PI())"
}
},
"fields": "userEnteredValue"
}
}
]
}
여러 정렬 옵션으로 범위 정렬
다음 spreadsheets.batchUpdate
코드 샘플은 SortRangeRequest
를 사용하여 A1:D10 범위를 먼저 열 B를 기준으로 오름차순으로 정렬한 다음 열 C를 기준으로 내림차순으로 정렬한 다음 열 D를 기준으로 내림차순으로 정렬하는 방법을 보여줍니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"sortRange": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"sortSpecs": [
{
"dimensionIndex": 1,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 2,
"sortOrder": "DESCENDING"
},
{
"dimensionIndex": 3,
"sortOrder": "DESCENDING"
}
]
}
}
]
}