A API Google Sheets permite que você crie e atualize gráficos em planilhas como necessários. Os exemplos nesta página ilustram como você pode alcançar alguns operações de gráficos com a API Sheets.
Esses exemplos são apresentados na forma de solicitações HTTP para serem neutras. Para saber como implementar uma atualização em lote em diferentes idiomas usando bibliotecas de clientes da API do Google, consulte Atualizar planilhas.
Nestes exemplos, os marcadores de posição SPREADSHEET_ID e SHEET_ID
indica onde você deve fornecer esses IDs. Você pode encontrar a planilha
ID no URL da planilha. Você pode receber
o ID da planilha usando o
spreadsheets.get
. A
são especificados usando a notação A1. Um
exemplo de intervalo é Sheet1!A1:D5.
Além disso, o marcador CHART_ID indica o ID de um determinado
gráfico. Você pode definir esse ID ao criar um gráfico com a API Sheets,
ou permita que a API Sheets gere um para você. É possível conseguir os IDs
os gráficos atuais com o
método spreadsheets.get
.
Por fim, o marcador de posição SOURCE_SHEET_ID indica sua página com dos dados de origem. Nesses exemplos, esta é a tabela listada em Origem do gráfico dados.
Dados de origem do gráfico
Para esses exemplos, suponha que a planilha usada tenha a seguinte fonte dados em sua primeira planilha ("Sheet1"). As strings na primeira linha são rótulos para as colunas individuais. Para ver exemplos de como ler em outras planilhas no planilha, consulte a notação A1.
A | B | C | D | E | |
1 | Número do modelo | Vendas - janeiro | Vendas – Fev | Vendas – março | Total de vendas |
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 |
Adicionar um gráfico de colunas
O seguinte
spreadsheets.batchUpdate
um exemplo de código mostra como usar a
AddChartRequest
para criar um gráfico de colunas a partir dos dados de origem, colocando-os em uma nova planilha. A
faz o seguinte para configurar o gráfico:
- Define o tipo de gráfico como um gráfico de colunas.
- Adiciona uma legenda à parte inferior do gráfico.
- Define os títulos do gráfico e do eixo.
- Configura 3 séries de dados, representando as vendas para três meses diferentes, enquanto usando a formatação e as cores padrão.
Confira o protocolo da solicitação abaixo.
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 } } } } ] }
A solicitação cria um gráfico em uma nova planilha como este:
Adicionar um gráfico de pizza
O seguinte
spreadsheets.batchUpdate
um exemplo de código mostra como usar a
AddChartRequest
para criar um gráfico de pizza em 3D a partir dos dados de origem. A solicitação faz o seguinte para
configure o gráfico:
- Define o título do gráfico.
- Adiciona uma legenda à direita do gráfico.
- Define o gráfico como um gráfico de pizza em 3D. Os gráficos de pizza em 3D não podem ter "buraco de rosca" no centro, da mesma forma que os gráficos de pizza.
- Define a série de dados do gráfico como o total de vendas de cada número de modelo.
- Ancora o gráfico na célula C3 da planilha especificada por SHEET_ID. com um deslocamento de 50 pixels nas direções X e Y.
Confira o protocolo da solicitação abaixo.
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 } } } } } ] }
A solicitação cria um gráfico como este:
Como alternativa, também é possível atualizar o valor captionPosition de RIGHT_LEGEND como LABELED_LEGEND dentro da solicitação, de modo que os valores da legenda sejam conectado às fatias do gráfico de pizza.
'legendPosition': 'LABELED_LEGEND',
A solicitação atualizada cria um gráfico como este:
Adicionar um gráfico de linhas usando vários intervalos não adjacentes
O seguinte
spreadsheets.batchUpdate
um exemplo de código mostra como usar a
AddChartRequest
para criar um gráfico de linhas a partir dos dados de origem, colocando-os na planilha de origem.
A seleção de intervalos não adjacentes pode ser usada para excluir linhas da
ChartSourceRange
A solicitação faz o seguinte para configurar o gráfico:
- Define o tipo de gráfico como um gráfico de linhas.
- Define o título horizontal do eixo x.
- Configura uma série de dados que representa vendas. Ele define A1:A3 e A6:A7 como
domain
, e B1:B3 e B6:B7 comoseries
, enquanto usam a formatação e as cores padrão. Os intervalos são especificados usando A1 notável no URL da solicitação. - Ancora o gráfico na célula H8 da página especificada por SHEET_ID.
Confira o protocolo da solicitação abaixo.
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 } } } } } } ] }
A solicitação cria um gráfico em uma nova planilha como este:
Excluir um gráfico
O seguinte
spreadsheets.batchUpdate
um exemplo de código mostra como usar a
DeleteEmbeddedObjectRequest
para excluir um gráfico especificado pelo CHART_ID.
Confira o protocolo da solicitação abaixo.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "deleteEmbeddedObject": { "objectId": CHART_ID } } ] }
Editar as propriedades de um gráfico
O seguinte
spreadsheets.batchUpdate
um exemplo de código mostra como usar a
UpdateChartSpecRequest
para editar o gráfico criado no roteiro Adicionar um gráfico de colunas;
modificando seus dados, tipo e aparência. Os subconjuntos de propriedades do gráfico não podem ser
alterados individualmente. Para fazer edições, informe todo o campo spec
com um UpdateChartSpecRequest
. Editar uma especificação de gráfico
requer a substituição por um novo.
A solicitação a seguir atualiza o gráfico original (especificado por CHART_ID):
- Define o tipo de gráfico como
BAR
. - Move a legenda para a direita do gráfico.
- Inverte os eixos para que "Vendas" está na parte inferior do eixo, e "Números do modelo" fica no eixo da esquerda.
- Define o formato do título do eixo como fonte de 24 pontos, negrito e itálico.
- Remove o "W-24" dados do gráfico (linha 7 na origem do gráfico dados).
Confira o protocolo da solicitação abaixo.
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 } } } } ] }
Depois da solicitação, o gráfico aparece assim:
Mover ou redimensionar um gráfico
O seguinte
spreadsheets.batchUpdate
um exemplo de código mostra como usar a
UpdateEmbeddedObjectPositionRequest
para mover e redimensionar um gráfico. Após a solicitação, o gráfico especificado por CHART_ID
é:
- Ancorado à célula A5 da página original.
- Deslocamento na direção X em 100 pixels.
- Redimensionado para 1.200 por 742 pixels (o tamanho padrão de um gráfico é 600 por 371 pixels).
A solicitação só muda as propriedades especificadas com o parâmetro fields
.
Outras propriedades, como offsetYPixels
, mantêm os valores originais.
Confira o protocolo da solicitação abaixo.
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" } } ] }
Ler dados do gráfico
O seguinte
Exemplo de código do spreadsheets.get
mostra como receber os dados do gráfico de uma planilha. O parâmetro de consulta fields
especifica que somente os dados do gráfico devem ser mostrados.
A resposta a essa chamada de método é uma
spreadsheet
, que contém uma matriz de
Objetos sheet
. Qualquer gráfico
presentes em uma planilha são representados
Objeto sheet
. Se um
response for definido como o valor padrão, ele será omitido da resposta.
Neste exemplo, a primeira página (SOURCE_SHEET_ID) não tem nenhuma gráficos, então um par vazio de chaves é retornado. A segunda planilha tem o gráfico criado em Adicionar um gráfico de colunas e nada mais.
Confira o protocolo da solicitação abaixo.
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", }, } ] } ] }