Google Sheets API를 사용하면 스프레드시트 내에서 다음과 같이 차트를 만들고 업데이트할 수 있습니다. 확인할 수 있습니다 이 페이지의 예시는 일반적인 차트 작업을 수행할 수 있습니다.
이 예는 언어적 표현인 HTTP 요청의 형식으로 중립적입니다. 다음을 사용하여 다양한 언어로 일괄 업데이트를 구현하는 방법을 알아봅니다. 자세한 내용은 업데이트 스프레드시트를 사용합니다.
이 예에서 SPREADSHEET_ID 및 SHEET_ID 자리표시자는
는 해당 ID를 제공할 위치를 나타냅니다. 스프레드시트
ID를 입력합니다. 얻을 수 있는 혜택
시트 ID를
spreadsheets.get
메서드를 사용하여 지도 가장자리에
패딩을 추가할 수 있습니다. 이
A1 표기법을 사용하여 범위를 지정합니다.
예시 범위는 Sheet1!A1:D5입니다.
또한 자리표시자 CHART_ID는 지정된
차트를 참조하세요. Sheets API를 사용하여 차트를 만들 때 이 ID를 설정할 수 있습니다.
Sheets API에서 자동 생성하도록 할 수도 있습니다 이 포드의 ID는
기존 차트에
spreadsheets.get
메서드를 사용하여 지도 가장자리에
패딩을 추가할 수 있습니다.
마지막으로 자리표시자 SOURCE_SHEET_ID는 소스 데이터 이 예에서는 차트 소스 아래 나열된 표입니다. 데이터)를 참조하세요.
차트 소스 데이터
이 예에서는 사용 중인 스프레드시트의 소스가 다음과 같다고 가정합니다. 첫 번째 시트('Sheet1')에 첫 번째 행의 문자열은 변경할 수 있습니다. 다른 시트에서 읽는 방법에 대한 예를 보려면 A1 표기법을 참조하세요.
A | B | C | D | E | |
1 | 모델 번호 | 영업 - 1월 | 영업 - 2월 | 영업 - 3월 | 총 매출 |
2 | D-01X | 68 | 74 | 60 | 202 |
3 | FR-0B1 | 97 | 76 | 88 | 261 |
4 | P-034 | 27 | 49 | 32 | 108 |
5 | P-105 | 46 | 44 | 67 | 157 |
6 | W-11 | 75 | 68 | 87 | 230 |
7 | W-24 | 74 | 52 | 62 | 188 |
열 차트 추가
다음
spreadsheets.batchUpdate
드림
코드 샘플을 사용하여
AddChartRequest
소스 데이터에서 열 차트를 만들어 새 시트에 배치합니다. 이
요청은 차트를 구성하기 위해 다음을 수행합니다.
- 차트 유형을 세로 막대형 차트로 설정합니다.
- 차트 하단에 범례를 추가합니다.
- 차트 및 축 제목을 설정합니다.
- 3개월 동안의 판매를 나타내는 3개의 데이터 계열을 구성하는 동안 기본 서식 및 색상을 사용합니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "COLUMN", "legendPosition": "BOTTOM_LEGEND", "axis": [ { "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "position": "LEFT_AXIS", "title": "Sales" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "LEFT_AXIS" } ], "headerCount": 1 } }, "position": { "newSheet": true } } } } ] }
이 요청은 다음과 같이 새 시트에 차트를 만듭니다.
원형 차트 추가
다음
spreadsheets.batchUpdate
드림
코드 샘플을 사용하여
AddChartRequest
소스 데이터에서 3D 원형 차트를 만듭니다. 요청은 다음을 위해 다음을 수행합니다.
차트를 구성합니다.
- 차트 제목을 설정합니다.
- 차트 오른쪽에 범례를 추가합니다.
- 차트를 3D 원형 차트로 설정합니다. 3D 원형 차트는 '도넛 홀' 가운데에 있는 작은 문자입니다.
- 차트 데이터 계열을 각 모델 번호의 총매출로 설정합니다.
- SHEET_ID로 지정된 시트의 C3 셀에 차트를 고정합니다. 50픽셀 오프셋으로 X와 Y방향을 모두 할 수 있습니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "title": "Model Q1 Total Sales", "pieChart": { "legendPosition": "RIGHT_LEGEND", "threeDimensional": true, "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1 } ] } }, "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 7, "startColumnIndex": 4, "endColumnIndex": 5 } ] } }, } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SHEET_ID, "rowIndex": 2, "columnIndex": 2 }, "offsetXPixels": 50, "offsetYPixels": 50 } } } } } ] }
이 요청은 다음과 같은 차트를 만듭니다.
또는 RIGHT_LEGEND에서 leftPosition 값을 업데이트할 수도 있습니다. 요청 내에서 LABELED_LEGEND로 설정하여 범례 값은 연결되어 있습니다.
'legendPosition': 'LABELED_LEGEND',
업데이트된 요청은 다음과 같은 차트를 만듭니다.
인접하지 않은 여러 범위를 사용하여 선 차트 추가
다음
spreadsheets.batchUpdate
드림
코드 샘플을 사용하여
AddChartRequest
를 클릭하여 소스 데이터에서 선 차트를 만들어 소스 시트에 배치합니다.
인접하지 않은 범위를 선택하면
ChartSourceRange
이 요청은 차트를 구성하기 위해 다음을 수행합니다.
- 차트 유형을 선 차트로 설정합니다.
- 가로 x축 제목을 설정합니다.
- 판매를 나타내는 데이터 계열을 구성합니다. A1:A3과 A6:A7을
domain
님, B1:B3 및 B6:B7을series
, 기본 서식 및 색상을 사용할 수 있습니다. 범위는 A1을 사용하여 지정됩니다. 표기법을 사용합니다. - SHEET_ID로 지정된 시트의 H8 셀에 차트를 고정합니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addChart": { "chart": { "spec": { "basicChart": { "chartType": "LINE", "domains": [ { "domain": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 0, "endColumnIndex": 1, "sheetId": SOURCE_SHEET_ID } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID }, { "startRowIndex": 5, "endRowIndex": 7, "startColumnIndex": 1, "endColumnIndex": 2, "sheetId": SOURCE_SHEET_ID } ] } } } ] } }, "position": { "overlayPosition": { "anchorCell": { "sheetId": SOURCE_SHEET_ID, "rowIndex": 8, "columnIndex": 8 } } } } } } ] }
이 요청은 다음과 같이 새 시트에 차트를 만듭니다.
차트 삭제
다음
spreadsheets.batchUpdate
드림
코드 샘플을 사용하여
DeleteEmbeddedObjectRequest
CHART_ID로 지정된 차트를 삭제합니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
차트 속성 수정
다음
spreadsheets.batchUpdate
드림
코드 샘플을 사용하여
UpdateChartSpecRequest
열 차트 추가 레시피에서 만든 차트를 수정합니다.
데이터, 유형, 모양을 수정하는 법을 배웠습니다. 차트 속성의 하위 집합은
개별적으로 변경됩니다. 수정하려면 spec
입력란 전체를 입력해야 합니다.
UpdateChartSpecRequest
로 교체합니다. 기본적으로 차트 사양을 수정하면
새 것으로 교체해야 합니다
다음 요청은 CHART_ID).
- 차트 유형을
BAR
로 설정합니다. - 범례를 차트의 오른쪽으로 이동합니다.
- 축을 반전시켜 '판매' "모델 번호"가 왼쪽 축에 있습니다.
- 축 제목 형식을 24포인트 글꼴, 굵은 기울임꼴로 설정합니다.
- 'W-24' 삭제 차트의 데이터 (차트 소스의 7행) 데이터)에 대한 '데이터 분석' 섹션을 참조하세요.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateChartSpec": { "chartId": CHART_ID, "spec": { "title": "Model Q1 Sales", "basicChart": { "chartType": "BAR", "legendPosition": "RIGHT_LEGEND", "axis": [ { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "BOTTOM_AXIS", "title": "Sales" }, { "format": { "bold": true, "italic": true, "fontSize": 24 }, "position": "LEFT_AXIS", "title": "Model Numbers" } ], "domains": [ { "domain": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 0, "endColumnIndex": 1 } ] } } } ], "series": [ { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 1, "endColumnIndex": 2 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 2, "endColumnIndex": 3 } ] } }, "targetAxis": "BOTTOM_AXIS" }, { "series": { "sourceRange": { "sources": [ { "sheetId": SOURCE_SHEET_ID, "startRowIndex": 0, "endRowIndex": 6, "startColumnIndex": 3, "endColumnIndex": 4 } ] } }, "targetAxis": "BOTTOM_AXIS" } ], "headerCount": 1 } } } } ] }
요청 후 차트가 다음과 같이 표시됩니다.
차트 이동 또는 크기 조정
다음
spreadsheets.batchUpdate
드림
코드 샘플을 사용하여
UpdateEmbeddedObjectPositionRequest
차트를 이동하고 크기를 조정합니다. 요청 후 CHART_ID에 의해 지정된 차트
다음과 같습니다.
- 원래 시트의 A5 셀에 고정됩니다.
- X 방향으로 100픽셀 오프셋입니다.
- 1200 x 742픽셀 (차트의 기본 크기는 600x371픽셀)이어야 합니다.
이 요청은 fields
매개변수로 지정된 속성만 변경합니다.
다른 속성 (예: offsetYPixels
)은 원래 값을 유지합니다.
요청 프로토콜은 아래와 같습니다.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateEmbeddedObjectPosition": { "objectId": CHART_ID, "newPosition": { "overlayPosition": { "anchorCell": { "rowIndex": 4, "columnIndex": 0 }, "offsetXPixels": 100, "widthPixels": 1200, "heightPixels": 742 } }, "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels" } } ] }
차트 데이터 읽기
다음
spreadsheets.get
코드 샘플
는 스프레드시트에서 차트 데이터를 가져오는 방법을 보여줍니다. fields
쿼리 매개변수
는 차트 데이터만 반환되어야 함을 지정합니다.
이 메서드 호출에 대한 응답은
spreadsheet
드림
객체에는
sheet
객체. 모든 차트
표현된 데이터가
sheet
객체 만약
응답 필드가 기본값으로 설정되는 경우 응답에서 생략됩니다.
이 예에서 첫 번째 시트 (SOURCE_SHEET_ID)에는 차트에서 빈 중괄호 한 쌍이 반환됩니다. 두 번째 시트에는 차트가 아닌 열 차트 추가로 생성된 차트입니다.
요청 프로토콜은 아래와 같습니다.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{ "sheets": [ {}, { "charts": [ { "chartId": CHART_ID, "position": { "sheetId": SHEET_ID }, "spec": { "basicChart": { "axis": [ { "format": { "bold": false, "italic": false }, "position": "BOTTOM_AXIS", "title": "Model Numbers" }, { "format": { "bold": false, "italic": false }, "position": "LEFT_AXIS", "title": "Sales" } ], "chartType": "COLUMN", "domains": [ { "domain": { "sourceRange": { "sources": [ { "endColumnIndex": 1 "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 0, "startRowIndex": 0, } ] } } } ], "legendPosition": "BOTTOM_LEGEND", "series": [ { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 2, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 1, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 3, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 2, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" }, { "series": { "sourceRange": { "sources": [ { "endColumnIndex": 4, "endRowIndex": 7, "sheetId": SOURCE_SHEET_ID, "startColumnIndex": 3, "startRowIndex": 0, } ] } }, "targetAxis": "LEFT_AXIS" } ] }, "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS", "title": "Model Q1 Sales", }, } ] } ] }