Google Sheets API v3를 기반으로 하는 기존 앱이 있는 경우 Google Sheets API v4 v4 버전은 JSON 기반이며 인터페이스하고 구현하기 어려운 많은 양의 기능을 추가합니다. 있습니다.
이 페이지에서는 이전 버전의 Sheets API v3 명령어와 동일한 작업을 수행할 수 있습니다. 이 매핑은 주로 spreadsheets.values 컬렉션을 사용하여 직접 셀 읽기 및 쓰기 기능을 제공합니다. 시트 추가 또는 시트 속성 업데이트와 같은 다른 측면은 spreadsheets 컬렉션에 추가합니다. v4 API의 JSON 구조는 이전 버전( XML 구조입니다.
Sheets v4 API에서 사용할 수 있는 리소스에 대한 자세한 내용은 API 참조
표기법 및 용어
v3 API에서는 특정 스프레드시트 내의 시트를 "워크시트"라고 합니다. 이것은 '시트'라는 용어와 동의어이며 v4 API에 사용됩니다.
API를 사용하면 스프레드시트 ID를 지정해야 하는 경우가 많습니다. 스프레드시트입니다. 또한 일반적으로 있습니다. 이러한 값은 API 엔드포인트의 일부로 표시됩니다. URL, 쿼리 매개변수 또는 요청 본문의 일부로 제공할 수 있습니다. 이 페이지에서 자리표시자 spreadsheetId 및 sheetId 각각 스프레드시트 및 시트 ID를 참조합니다. 메서드 사용 시 이러한 위치의 실제 ID를 대체하세요.
또한 v3 API는 목록 피드 이는 이 페이지에서 rowId 자리표시자로 표시됩니다.
요청 승인
앱이 실행되면 사용자에게 특정 권한을 부여하도록 요청합니다. 포드의 범위를 애플리케이션이 요청하는 권한을 결정합니다.
v3 API
Sheets API v3는 단일 승인 범위로 작동합니다.
https://spreadsheets.google.com/feeds
이것은
https://www.googleapis.com/auth/spreadsheets
두 범위 형식을 사용할 수 있습니다.
v4 API
Sheets API v4에서는 다음 범위 집합 중 하나 이상을 사용합니다.
https://www.googleapis.com/auth/spreadsheets.readonly https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive
애플리케이션에서 수정 작업을 할 필요가 없는 경우 읽기 전용 범위를 사용합니다. 액세스할 수 있습니다. 대신 스프레드시트 범위 사용 애플리케이션에 일반적인 Drive 액세스 권한이 필요하지 않은 경우 Drive 범위
공개 상태
이전 버전의 API에서 공개 상태라는 용어는 다음을 지칭하는 데 사용됩니다. 사용할 수 있습니다.
v3 API
Sheets API v3는 가시성을 엔드포인트에 직접 표현합니다. public
스프레드시트가 '웹에 게시'되었습니다. 다른 클러스터에서
액세스할 수 있으므로
권한이 없는 API와 private
스프레드시트는
있습니다. 가시성은
스프레드시트 ID:
https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
v4 API
새로운 Sheets API v4에서는 명시적인 가시성 선언이 없습니다. API 호출은 스프레드시트 ID를 사용하여 이루어집니다. 애플리케이션에 권한이 없으면 오류가 반환됩니다. 그렇지 않은 경우 통화가 진행됩니다.
투영
투영이라는 용어는 Sheets API v3에서 데이터 세트를 지칭하기 위해 사용됩니다. 지정된 API 호출에서 반환되는 경우(모두 또는 고정된 하위 집합) API 내에서 정의됩니다. Sheets API v4에서는 프로젝션을 사용하지 않습니다. Kubernetes 반환되는 데이터를 더 세부적으로 관리할 수 있습니다.
v3 API
Sheets API v3에서 사용할 수 있는 투영 설정은 두 가지뿐입니다. full
프로젝션은 사용 가능한 모든 정보를 반환하지만 basic
은
더 작고 고정된 데이터 하위 집합 (워크시트, 목록 및 셀 피드의 경우)입니다.
가시성과 마찬가지로 프로젝션은 API 엔드포인트에 지정되어야 합니다.
(공개 상태 설정 후):
https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/public/basic
basic
프로젝션에서 제공하는 데이터의 더 작은 하위 집합이 중요합니다.
맞춤설정할 수 있지만 맞춤설정할 수는 없습니다.
v4 API
Sheets API v4에서는 전체 데이터 세트를 반환할 수 있지만 고정 데이터 세트를 정의하지는 않습니다.
Sheets API v3의 basic
공개 상태 설정과 유사한 하위 집합입니다.
스프레드시트의 메서드
반환되는 데이터의 양을 제한하는 것은
fields 쿼리 매개변수를 추가할 수 있습니다.
예를 들어, 다음 쿼리는 시트를 추가하려면 다음 단계를 따르세요.
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties.title
스프레드시트 만들기
v3 API
Sheets API v3에서는 새 스프레드시트를 만들 수 없습니다.
Drive API Files.create를
방법을 사용하여 새 스프레드시트 파일을 만들 수 있습니다. 이를 위해서는
애플리케이션을 사용하여 https://www.googleapis.com/auth/drive
범위를 선언합니다.
v4 API
Drive API Files.create 메서드는 다음과 같은 작업을 할 수 있습니다.
Sheets API v4에서도 사용할 수 있지만 애플리케이션에서
https://www.googleapis.com/auth/drive
범위
이와 동등한 대안으로 Sheets API v4에서는 spreadsheets.create 메서드를 사용하여 원하는 경우 시트를 추가하고 스프레드시트 및 시트를 설정할 수도 있습니다. 속성을 사용하고 이름이 지정된 범위를 추가합니다. 예를 들어 다음은 새 이름을 'NewTitle'로 지정합니다.
POST https://sheets.googleapis.com/v4/spreadsheets
{ "properties": {"title": "NewTitle"} }
인증된 사용자의 스프레드시트 나열
v3 API
Sheets API v3 피드를 사용하면 애플리케이션이 액세스할 수 있는 스프레드시트입니다. 스프레드시트 피드 다음과 같습니다.
GET https://spreadsheets.google.com/feeds/spreadsheets/private/full
v4 API
Sheets API v4에서는 이러한 특정 작업을 제공하지 않습니다. 권장 조치 drive.file 범위를 스프레드시트 선택을 위한 Google 선택 도구입니다.
스프레드시트를 나열해야 하는 경우에는
다음을 사용하여 Drive API Files.list 메서드로 전송
mimeType
쿼리:
GET https://www.googleapis.com/drive/v3/files ?q=mimeType='application/vnd.google-apps.spreadsheet'
Drive API files.list 메서드를 사용하여 사용자의 모든 스프레드시트 나열 제한된 범위가 필요합니다.
시트 메타데이터 가져오기
Sheets API v3에서는 시트 메타데이터에 액세스할 수 있는 피드를 제공합니다. 행 및 셀 데이터는 주어진 스프레드시트 내에 포함된 별도의 피드) 메타데이터에는 시트 제목, 확인할 수 있습니다.
Sheets API v4 spreadsheets.get 메서드를 사용하면 이 정보 등에 액세스할 수 있습니다.
v3 API
워크시트 피드는 이 API 엔드포인트에서 액세스할 수 있습니다( 승인 헤더로 사용)
GET https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
이 요청에 대한 응답은 다음과 유사한 구조를 갖습니다.
각 시트의 데이터는 별도의 <entry>
에 포함됩니다.
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:gs="http://schemas.google.com/spreadsheets/2006"
xmlns:gd="http://schemas.google.com/g/2005"
gd:etag='W/"D0cERnk-eip7ImA9WBBXGEg."'>
<id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<title type="text">Groceries R Us</title>
<link rel="alternate" type="text/html"
href="https://spreadsheets.google.com/ccc?key=spreadsheetId"/>
<link rel="http://schemas.google.com/g/2005#feed"
type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
<link rel="http://schemas.google.com/g/2005#post" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full"/>
<author>
<name>Fitzwilliam Darcy</name>
<email>fitz@example.com</email>
</author>
<openSearch:totalResults>1</openSearch:totalResults>
<openSearch:startIndex>1</openSearch:startIndex>
<openSearch:itemsPerPage>1</openSearch:itemsPerPage>
<entry gd:etag='"YDwqeyI."'>
<id>https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<title type="text">Sheet1</title>
<content type="text">Sheet1</content>
<link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
<link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
<gs:rowCount>100</gs:rowCount>
<gs:colCount>20</gs:colCount>
</entry>
</feed>
v4 API
spreadsheets.get
메서드를 사용하여 시트 속성과 기타 메타데이터를 얻을 수 있습니다.
Sheets API v3보다 훨씬 더 많은 작업을 수행할 수 있습니다. 만약
시트 속성을 읽으려면 includeGridData
쿼리를 설정하세요.
매개변수를 false
로 설정하여 스프레드시트 셀 데이터가 포함되지 않도록 합니다.
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?includeGridData=false
Spreadsheet
응답에 Sheet
의 배열이 포함되어 있습니다.
객체 시트 제목과 크기 정보는
SheetProperties
아래
요소가 포함됩니다. 예를 들면 다음과 같습니다.
{ "spreadsheetId": spreadsheetId, "sheets": [ {"properties": { "sheetId": sheetId, "title": "Sheet1", "index": 0, "gridProperties": { "rowCount": 100, "columnCount": 20, "frozenRowCount": 1, "frozenColumnCount": 0, "hideGridlines": false }, ... }, ... }, ... ], ... }
스프레드시트에 시트 추가
두 API 모두 새 시트를 기존 스프레드시트에 추가할 수 있습니다.
v3 API
Sheets API v3에서는
다음 (인증된) POST
요청입니다. 포드의 크기를
새 시트:
POST https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
<title>Expenses</title>
<gs:rowCount>50</gs:rowCount>
<gs:colCount>10</gs:colCount>
</entry>
v4 API
새 시트를 추가할 수 있습니다. AddSheet spreadsheets.batchUpdate에서 메서드를 사용하여 축소하도록 요청합니다. 요청 본문의 일부로 새 시트입니다. 모든 속성은 선택사항입니다. 기존 시트에 사용되는 제목입니다.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [{ "addSheet": { "properties": { "title": "Expenses", "sheetType": "GRID", "gridProperties": { "rowCount": 50, "columnCount": 10 } } } }], }
시트 제목 및 크기 변경
Sheets API v3에서는 시트 제목과 크기를 업데이트할 수 있습니다. Sheets API v4 이것도 허용하지만 다른 시트 속성을 업데이트하는 데 사용할 수도 있습니다. 시트의 크기를 줄이면 잘린 셀의 데이터가 경고 없이 삭제되었습니다.
v3 API
워크시트의 제목이나 크기를 변경하려면 먼저
워크시트 피드 및
edit
URL이 포함된 원하는 워크시트 항목을 찾습니다.
워크시트의 메타데이터를 업데이트하여 PUT
요청의 본문으로 전송
수정 URL로 이동합니다. 예를 들면 다음과 같습니다.
PUT https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
<entry>
<id>
https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId
</id>
<updated>2007-07-30T18:51:30.666Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#worksheet"/>
<title type="text">Expenses</title>
<content type="text">Expenses</content>
<link rel="http://schemas.google.com/spreadsheets/2006#listfeed"
type="application/atom+xml" href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full"/>
<link rel="http://schemas.google.com/spreadsheets/2006#cellsfeed"
type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full"/>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version"/>
<gs:rowCount>45</gs:rowCount>
<gs:colCount>15</gs:colCount>
</entry>
v4 API
크기, 제목 및 기타 시트 속성을 업데이트하려면
updateSheetProperties
요청을
spreadsheets.batchUpdate
메서드를 사용하여 축소하도록 요청합니다. POST
요청 본문에는 다음과 같은 속성이 포함되어야 합니다.
변경되었으며 fields
매개변수는 이러한 속성을 명시적으로 나열해야 합니다.
(모든 속성을 업데이트하려면 fields:"*"
를
모두 나열). 대상
예를 들어 다음은 시트 제목과 크기를
속성은 지정된 ID의 시트에 대해 업데이트되어야 합니다.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [ { "updateSheetProperties": { "properties": { "sheetId": sheetId, "title": "Expenses", "gridProperties": { "rowCount": 45, "columnCount": 15, } }, "fields": "title,gridProperties(rowCount,columnCount)" } } ], }
시트의 sheetId을(를) 가져오려면 스프레드시트를 사용하세요. spreadsheets.get 메서드를 사용할 수 있습니다.
시트 삭제
두 API는 지정된 스프레드시트에서 시트를 삭제할 수 있습니다.
v3 API
워크시트를 삭제하려면 먼저
워크시트 피드를 선택한 다음
대상 워크시트 항목의 edit
URL에 대해 DELETE
요청을 보냅니다.
DELETE https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version
v4 API
시트를 삭제하려면
DeleteSheet
요청을
spreadsheets.batchUpdate
메서드를 사용하여 축소하도록 요청합니다. POST
요청 본문에는sheetId
시트입니다. 예를 들면 다음과 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [ { "deleteSheet": { "sheetId": sheetId } } ], }
개별 시트의 sheetId를 가져오려면 다음을 사용하세요. 스프레드시트 spreadsheets.get 메서드를 사용하여 축소하도록 요청합니다.
행 데이터 검색
목록 행 피드는 Sheets API v3에서 스프레드시트의 셀에 있는 데이터에 액세스 (다른 하나는 셀 피드) 이 행 피드는 일반적인 스프레드시트 작업 (행별로 읽기, 행 추가, 정렬), 적합하지 않은 특정 가정을 하게 됨 살펴보겠습니다 특히 목록 피드에서는 빈 행이 피드라고 가정합니다. 종료되고 필수 헤더가 시트입니다.
반면 Sheets API v4에서는 다음과 같은 액세스 방법을 사용하지 않습니다. 행별로 다릅니다. 대신 시트 셀 데이터에는 A1 표기법을 사용해야 합니다. 이 범위는 셀 블록, 전체 행, 전체 열 또는 전체 시트가 될 수 있습니다. API는 분리된 셀 집합에 액세스할 수도 있습니다.
v3 API
지정된 워크시트에 대한 목록 기반 피드의 URL을 확인하려면 워크시트 피드 관심 있는 워크시트 항목에서 목록 피드 URL을 찾습니다.
목록 기반 피드를 가져오려면 목록 피드 URL에 GET
요청을 보냅니다.
승인 헤더를 사용합니다. 예를 들면 다음과 같습니다.
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
이 요청에 대한 응답에는 무엇보다도 해당하는 특정 행을 나타냅니다. 개별 셀 참조는 (필수) 시트 헤더 행에 제공된 이름 예를 들어 단일 행 항목입니다.
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
<id>rowId</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#list"/>
<title type="text">Bingley</title>
<content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
<gsx:name>Bingley</gsx:name>
<gsx:hours>10</gsx:hours>
<gsx:items>2</gsx:items>
<gsx:ipm>0.0033</gsx:ipm>
</entry>
기본적으로 목록 피드에 반환되는 행은 행 순서로 반환됩니다. Sheets API v3에서는 이 순서를 변경하는 쿼리 매개변수를 제공합니다.
역순:
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full?reverse=true
특정 열을 기준으로 정렬:
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full ?orderby=column:lastname
또한 Sheets API v3에서는 구조화된 CSV 파일을 통해 특정 행을 필터링할 수 있습니다. 열 머리글에서 참조됨):
GET https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full ?sq=age>25%20and%20height<175
v4 API
Sheets API v4에서는 spreadsheets.values.get 또는 spreadsheets.values.batchGet 메서드를 참조하세요. 예를 들어 다음은 'Sheet1'의 모든 행을 반환합니다.
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1
이 요청에 대한 응답은 다음과 유사한 구조를 갖습니다.
{ "range": "Sheet1", "majorDimension": "ROWS", "values": [["Name", "Hours", "Items", "IPM"], ["Bingley", "10", "2", "0.0033"], ["Darcy", "14", "6", "0.0071"]] }
전체 검색 시 뒤에 오는 빈 셀은 응답에 포함되지 않음 행, 열 또는 시트를 포함할 수 있습니다.
Sheets API v4에는 행 순서 쿼리에 상응하는 기능이 없습니다.
매개변수를 사용하세요. 역순은 간단합니다. 간단히
반환된 values
배열을 역순으로 처리합니다. 열 기준 정렬이 아님
읽기에 지원되지만 시트의 데이터를 정렬할 수도 있지만(
SortRange)
읽을 수 있습니다
현재 Sheets API v4에는 Sheets API v3 구조화된 쿼리에 직접 상응하는 기능이 없습니다. 하지만 관련 데이터를 검색하고 애플리케이션에서 필요에 따라 분류할 수 있습니다
새 데이터 행 추가
두 API 중 하나를 사용하여 새 데이터 행을 시트에 추가할 수 있습니다.
v3 API
지정된 워크시트에 대한 목록 기반 피드의 URL을 확인하려면 워크시트 피드 관심 있는 워크시트 항목에서 게시물 URL을 찾습니다.
데이터 행을 추가하려면 게시물 URL에 POST
요청을 보냅니다.
승인 헤더를 사용합니다. 예를 들면 다음과 같습니다.
POST https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full
POST
요청의 본문에는 실행할 행 데이터의 항목이 포함되어야 합니다.
열 머리글별로 참조되는 개별 셀을 포함하십시오.
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">
<gsx:hours>2</gsx:hours>
<gsx:ipm>0.5</gsx:ipm>
<gsx:items>60</gsx:items>
<gsx:name>Elizabeth</gsx:name>
</entry>
지정된 시트의 끝에 새 행이 추가됩니다.
v4 API
Sheets API v4에서는 spreadsheets.values.append 메서드를 사용하여 축소하도록 요청합니다. 다음 예는 마지막 스토리지 클래스 아래에 새 데이터 행을 "Sheet1"의 표 스프레드시트입니다.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/append/Sheet1
{ "values": [["Elizabeth", "2", "0.5", "60"]] }
또한 Sheets API v4를 사용하면 셀에 특정 속성 및 서식을 AppendCells 요청을 spreadsheets.batchUpdate.
새 데이터로 행 수정
두 API 모두 행 데이터를 새 값으로 업데이트할 수 있습니다.
v3 API
데이터 행을 수정하려면 목록 피드를 검토합니다. 를 클릭하여 업데이트하려는 행의 항목을 찾습니다. 다음 항목의 콘텐츠를 업데이트합니다. 변경할 수 있습니다 사용하는 항목의 ID 값이 정확하게 기존 항목의 ID와 일치합니다.
항목이 업데이트되면 PUT
요청을
요청 본문을 해당 행 항목에 제공된 edit
URL에 전달합니다.
승인 헤더를 사용합니다. 예를 들면 다음과 같습니다.
PUT https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
<id>rowId</id>
<updated>2006-11-17T18:23:45.173Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#list"/>
<title type="text">Bingley</title>
<content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version"/>
<gsx:name>Bingley</gsx:name>
<gsx:hours>20</gsx:hours>
<gsx:items>4</gsx:items>
<gsx:ipm>0.0033</gsx:ipm>
</entry>
v4 API
Sheets API v4에서는 수행하려는 행의 A1 표기법 kubectl 명령어를 spreadsheets.values.update 해당 행을 덮어쓰도록 요청합니다. 지정된 범위는 행의 첫 번째 셀, API는 요청과 함께 제공된 값입니다. 대신 다중 셀 범위를 지정하는 경우 제공하는 값이 해당 범위 내에 들어가야 합니다. 그렇지 않으면 API가 오류가 발생했습니다.
다음 예시 요청과 요청 본문은 "Sheet1"의 네 번째 행:
PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A4
{ "values": [["Elizabeth", "2", "0.5", "60"]] }
또한 다음 위치에서 행 데이터를 업데이트할 수 있습니다. spreadsheet.values.batchUpdate 메서드; 여러 개의 이미지를 만드는 경우 이 방법을 사용하는 것이 행 또는 셀 업데이트를 수행합니다.
또한 Sheets API v4를 사용하면 셀 속성을 수정하고 셀 서식을 지정하는 방법 UpdateCells 또는 RepeatCell 요청을 spreadsheets.batchUpdate.
행 삭제
두 API 모두 행 삭제를 지원합니다. 삭제된 행은 그 아래 행이 1 위로 올라갑니다.
v3 API
행을 삭제하려면 먼저
목록 피드
그런 다음 행 항목에 제공된 edit
URL로 DELETE
요청을 보냅니다.
행을 업데이트하는 데 사용되는 URL과 동일합니다.
DELETE https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version
변경된 행을 삭제하지 않도록 하려는 경우 가져온 후 다른 클라이언트에 의해 생성되어야 하며 HTTP If-Match 헤더를 포함 <start> 토큰으로 시작합니다. 배포의 원본과 항목의 gd:etag 속성을 검사하여 행의 ETag 값을 반환할 수 있습니다.
다른 사용자가 업데이트했는지 여부와 관계없이 행을 삭제하려는 경우 그런 다음 If-Match: * 를 사용하고 ETag를 포함하지 마세요. 이 경우 행을 삭제하기 전에 검색할 필요가 없습니다.
v4 API
Sheets API v4에서 행 삭제는 spreadsheet.batchUpdate에 의해 처리됩니다. DeleteDimension을 사용하여 메서드 호출 합니다. 이 요청은 열을 삭제하고 개발자가 행 또는 열의 일부만 삭제하도록 선택합니다. 예를 들어 다음은 지정된 ID가 있는 시트의 6번째 행을 제거합니다 (행 색인은 는 0부터 시작하며 startIndex는 포함하고 endIndex는 제외합니다.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate
{ "requests": [ { "deleteDimension": { "range": { "sheetId": sheetId, "dimension": "ROWS", "startIndex": 5, "endIndex": 6 } } } ], }
시트의 sheetId는 spreadsheet.get 메서드로 액세스할 수 있습니다.
셀 데이터 검색
Sheets API v3는
스프레드시트입니다. 읽기 액세스의 경우 셀 피드는 전체 시트 또는
콘텐츠 또는 시트의 셀 범위에 속하는지 확인할 수 있습니다.
단일 블록으로서만 존재하므로 분리된 범위를 가져와야 함
추가 GET
요청을 별도로 사용합니다.
Sheets API v4는 시트에서 모든 셀 데이터 집합( 여러 개의 분리된 범위). Sheets API v3에서는 셀 콘텐츠를 입력 값 (사용자가 키보드에서 입력하는 값) 및/또는 수식 (숫자인 경우) Sheets API v4에서는 값에 대한 전체 액세스 권한을 부여하므로 수식, 서식, 하이퍼링크, 데이터 유효성 검사 및 기타 속성
v3 API
지정된 워크시트에 대해 셀 기반 피드의 URL을 확인하려면 워크시트 피드 원하는 워크시트 항목에서 셀 피드 URL을 찾습니다.
셀 기반 피드를 검색하려면 셀 피드 URL에 GET
요청을 보냅니다.
승인 헤더를 사용합니다. 예를 들면 다음과 같습니다.
GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full
셀은 행 및 열 번호를 사용하여 참조됩니다. 단일 특정
max-row
, min-row
, max-col
, min-col
를 사용하여 범위를 지정할 수 있습니다.
쿼리 매개변수를 추가할 수 있습니다. 예를 들어 다음은 열의 모든 셀을 검색합니다.
행 2부터 시작하여
GET https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full ?min-row=2&min-col=4&max-col=4
Sheets API v3에서는 검색된 셀의 inputValue
를 반환합니다.
Google Sheets 사용자에게 입력하게 될 값
인터페이스를 사용하여 셀을 조작할 수 있습니다. inputValue
는 리터럴 값일 수 있습니다.
또는 공식이 포함될 수 있습니다. API는 numericValue
를 반환하기도 합니다. 예를 들어
공식이 숫자가 될 때. 예를 들어 응답은
항목을 찾습니다.
<entry gd:etag='"ImB5CBYSRCp7"'>
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4</id>
<updated>2006-11-17T18:27:32.543Z</updated>
<category scheme="http://schemas.google.com/spreadsheets/2006"
term="http://schemas.google.com/spreadsheets/2006#cell"/>
<title type="text">D4</title>
<content type="text">5</content>
<link rel="self" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4"/>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4/srevc"/>
<gs:cell row="4" col="4" inputValue="=FLOOR(C4/(B4*60),.0001)"
numericValue="5.0">5</gs:cell>
</entry>
v4 API
다음을 호출하여 셀 데이터를 검색합니다. spreadsheets.values.get 또는 spreadsheets.values.batchGet 각각 관심 범위 또는 범위에 대한 메서드입니다. 예를 들어 다음 함수는 행 2부터 시작하여 "Sheet2"의 열 D에 있는 셀을 반환합니다. 열 주요 순서로 정렬되고 입력된 대로 수식 반환 (후행 비어 있음) 생략됨).
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet2!D2:D?majorDimension=COLUMNS&valueRenderOption=FORMULA
이 요청에 대한 응답은 다음과 유사한 구조입니다.
{ "spreadsheetId": spreadsheetId, "valueRanges": [ {"range": "Sheet2!D2:D", "majorDimension": "COLUMNS", "values": [["Widget", 234, "=FLOOR(C4/(B4*60),.0001)", "=D4\*1000"]] }] }
Cloud ID를 사용하는 것이 spreadsheet.values.batchGet 여러 범위의 셀 데이터를 검색하려는 경우 원하는 경우 서식, spreadsheet.get 메서드는 필수 항목입니다.
셀 수정
Sheets API v3를 사용하면 PUT
명령어를 실행하여 셀 내용을 수정할 수 있습니다.
수정된 셀 항목을 요청 본문으로 포함하는 셀 피드
반면에 Sheets API v4는 spreadsheets.values.update 및 spreadsheets.values.batchUpdate 몇 가지 메서드를 제공합니다.
v3 API
단일 셀의 내용을 수정하려면 먼저 셀의 항목을
셀 피드를 선택합니다.
항목에는 edit URL이 포함됩니다. 콘텐츠를 반영하도록 항목 업데이트
셀에 포함시킨 후 수정 URL에 PUT
요청을 실행합니다.
업데이트된 셀 항목을 요청 본문으로 포함합니다. 예를 들어
다음은 SUM
수식을 포함하도록 셀 D2 (R2C4)를 업데이트합니다.
PUT https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full//R2C4/srevc<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gs="http://schemas.google.com/spreadsheets/2006"> <id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id> <link rel="edit" type="application/atom+xml" href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4"/> <gs:cell row="2" col="4" inputValue="=SUM(A1:B6)"/> </entry>
v4 API
Sheets API v4에서는
spreadsheets.values.update
메서드를 사용하여 축소하도록 요청합니다. 이 메서드에는 ValueInputOption
쿼리 매개변수가 필요합니다.
는 입력 데이터가
Sheets UI (USER_ENTERED
) 또는 파싱되지 않고 그대로 사용 (RAW
)됩니다. 대상
예를 들어 다음은 수식으로 셀 D2를 업데이트합니다.
PUT https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/D2?valueInputOption=USER_ENTERED
{"values": [["=SUM(A1:B6)"]]}
여러 셀을 수정하는 경우 spreadsheets.values.batchUpdate 메서드를 사용하여 한 번의 요청으로 처리할 수 있습니다.
일괄 요청을 통한 여러 셀 수정
두 API 모두 여러 셀의 내용을 변경할 수 있는 방법을 제공합니다. 단일 (일괄) 요청으로 처리할 수 있습니다 일괄 요청에 의해 참조되는 셀은 연속적인 범위에 있지 않아도 됩니다
일괄 작업에서 셀 편집 중 하나 이상이 실패한 경우 Sheets API v3에서는 다른 셀 수정이 성공할 수 있도록 허용합니다. Sheets API v4에서는 일괄 업데이트가 실패하는 경우 해당 업데이트를 모두 적용하지 않습니다.
v3 API
여러 셀을 수정하려면 먼저 셀 피드를 검색하세요.
살펴보겠습니다. 항목에는 일괄 URL이 포함됩니다. POST
보내기
이 URL에 대한 요청과 함께 사용자가 참조한 셀을 설명하는 요청 본문
새 셀 내용이 표시됩니다. POST
요청 및 요청 본문
다음과 유사한 구조를 가집니다.
POST https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/batch
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:batch="http://schemas.google.com/gdata/batch"
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full</id>
<entry>
<batch:id>request1</batch:id>
<batch:operation type="update"/>
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4</id>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4/version"/>
<gs:cell row="2" col="4" inputValue="newData"/>
</entry>
...
<entry>
<batch:id>request2</batch:id>
<batch:operation type="update"/>
<id>https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5</id>
<link rel="edit" type="application/atom+xml"
href="https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5/version"/>
<gs:cell row="5" col="2" inputValue="moreInfo"/>
</entry>
</feed>
batch:id
필드는 배치 내에서 요청을 고유하게 식별해야 합니다.
셀을 수정하려면 batch:operation
입력란이 update
여야 합니다. gs:cell
행 및 열 번호로 셀을 식별하고 새 데이터를 제공
삽입해야 합니다. id
에는 업데이트할 셀의 전체 URL이 포함됩니다.
link
에는 href
속성이 반드시
셀의 ID입니다. 이러한 입력란은 모두 각 항목에 필수입니다.
v4 API
Sheets API v4에서는 spreadsheets.values.batchUpdate 메서드를 사용하여 축소하도록 요청합니다.
여러 셀을 수정하려면 POST
요청 본문에 지정된 데이터 변경사항입니다. 예를 들면 다음과 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values:batchUpdate
{ "valueInputOption": "USER_ENTERED" "data": [ {"range": "D4", "majorDimension": "ROWS", "values": [["newData"]] }, {"range": "B5", "majorDimension": "ROWS", "values": [["moreInfo"]] } ] }
단일 셀을 범위로 지정한 경우 제공된 모든 값은 해당 셀부터 시작하여 시트에 작성됩니다. 여러 셀 범위를 지정하는 경우 입력하는 값이 두 셀 범위에 맞아야 합니다. 정확하게 알 수 있습니다. 그렇지 않으면 API가 오류를 반환합니다.