Classifiche

L'API Fogli Google consente di creare e aggiornare i grafici all'interno dei fogli di lavoro necessaria. Gli esempi in questa pagina illustrano come ottenere alcune operazioni di creazione dei grafici con l'API Fogli.

Questi esempi sono presentati sotto forma di richieste HTTP per neutri. Per scoprire come implementare un aggiornamento batch in lingue diverse utilizzando le librerie client delle API di Google, consulta l'articolo Aggiornamento fogli di lavoro.

In questi esempi, i segnaposto SPREADSHEET_ID e SHEET_ID indica dove fornire questi ID. Puoi trovare il foglio di lavoro ID nell'URL del foglio di lavoro. Puoi ottenere l'ID foglio utilizzando la proprietà spreadsheets.get. La vengono specificati utilizzando la notazione A1. Un di esempio è Foglio1!A1:D5.

Inoltre, il segnaposto CHART_ID indica l'ID di un determinato grafico. Puoi impostare questo ID quando crei un grafico con l'API Fogli, o consentire all'API Fogli di generarne uno per te. Puoi ottenere gli ID di grafici esistenti con spreadsheets.get.

Infine, il segnaposto SOURCE_SHEET_ID indica il foglio con dei dati di origine. In questi esempi, si tratta della tabella elencata in Sorgente del grafico i tuoi dati.

Dati di origine del grafico

Per questi esempi, supponiamo che il foglio di lavoro in uso abbia la seguente origine nel primo foglio ("Foglio1"). Le stringhe nella prima riga sono etichette per le singole colonne. Per visualizzare esempi di come leggere da altri fogli in del foglio di lavoro, vedi la notazione A1.

A B C D E
1 Numero modello Vendite - Gen Vendite - feb Vendite - Mar Vendite totali
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

Aggiungi un grafico a colonne

Le seguenti spreadsheets.batchUpdate l'esempio di codice mostra come utilizzare AddChartRequest per creare un grafico a colonne dai dati di origine, inserendolo in un nuovo foglio. La per configurare il grafico:

  • Imposta il tipo di grafico come grafico a colonne.
  • Aggiunge una legenda nella parte inferiore del grafico.
  • Imposta i titoli del grafico e degli assi.
  • Configura 3 serie di dati che rappresentano le vendite di 3 mesi diversi, mentre utilizzando formattazione e colori predefiniti.

Il protocollo di richiesta è mostrato di seguito.

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
          }
        }
      }
    }
  ]
}

La richiesta crea un grafico in un nuovo foglio come questo:

Aggiungi risultato formula grafico a colonne

Aggiungere un grafico a torta

Le seguenti spreadsheets.batchUpdate l'esempio di codice mostra come utilizzare AddChartRequest per creare un grafico a torta 3D dai dati di origine. La richiesta effettua le seguenti operazioni per configura il grafico:

  • Imposta il titolo del grafico.
  • Aggiunge una legenda a destra del grafico.
  • Imposta il grafico come grafico a torta 3D. Tieni presente che i grafici a torta 3D non possono avere un "ciambella" al centro, come fanno i grafici a torta piatta.
  • Imposta le serie di dati del grafico come vendite totali per ciascun numero di modello.
  • Ancora il grafico alla cella C3 del foglio specificato da SHEET_ID, con un offset di 50 pixel nelle direzioni X e Y.

Il protocollo di richiesta è mostrato di seguito.

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
            }
          }
        }
      }
    }
  ]
}

La richiesta crea un grafico come il seguente:

Aggiungi il risultato della formula del grafico a torta

In alternativa, puoi anche aggiornare il valore legendPosition da RIGHT_LEGEND. a LABELED_LEGEND all'interno della richiesta, in modo che i valori della legenda siano collegati alle sezioni del grafico a torta.

'legendPosition': 'LABELED_LEGEND',

La richiesta aggiornata crea un grafico come il seguente:

Aggiungi il risultato della formula del grafico a torta

Aggiungere un grafico a linee utilizzando più intervalli non adiacenti

Le seguenti spreadsheets.batchUpdate l'esempio di codice mostra come utilizzare AddChartRequest per creare un grafico a linee dai dati di origine, inserendolo nel foglio di origine. Puoi utilizzare la selezione di intervalli non adiacenti per escludere le righe dalla ChartSourceRange

Per configurare il grafico, procedi nel seguente modo:

  • Imposta il tipo di grafico come grafico a linee.
  • Imposta il titolo dell'asse X orizzontale.
  • Consente di configurare una serie di dati che rappresenta le vendite. Imposta A1:A3 e A6:A7 come domain, e B1:B3 e B6:B7 series, utilizzando formattazione e colori predefiniti. Gli intervalli vengono specificati utilizzando A1 notazione nell'URL della richiesta.
  • Ancora il grafico nella cella H8 del foglio specificato da SHEET_ID.

Il protocollo di richiesta è mostrato di seguito.

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
              }
            }
          }
        }
      }
    }
  ]
}

La richiesta crea un grafico in un nuovo foglio come questo:

Aggiungi la formula del grafico a linee con intervallo non adiacente
risultato

Eliminare un grafico

Le seguenti spreadsheets.batchUpdate l'esempio di codice mostra come utilizzare DeleteEmbeddedObjectRequest per eliminare un grafico specificato da CHART_ID.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteEmbeddedObject": {
        "objectId": CHART_ID
      }
    }
  ]
}

Modificare le proprietà di un grafico

Le seguenti spreadsheets.batchUpdate l'esempio di codice mostra come utilizzare UpdateChartSpecRequest per modificare il grafico creato nella formula Aggiungi un grafico a colonne, modificando dati, tipo e aspetto. Non è possibile impostare sottoinsiemi di proprietà del grafico modificate singolarmente. Per apportare modifiche, devi fornire l'intero campo spec con un UpdateChartSpecRequest. In pratica, la modifica delle specifiche di un grafico richiede la sua sostituzione con uno nuovo.

La seguente richiesta aggiorna il grafico originale (specificato da CHART_ID):

  • Imposta il tipo di grafico su BAR.
  • Sposta la legenda a destra del grafico.
  • Inverte gli assi in modo che "Vendite" si trova sull'asse inferiore e "Numeri modello" è sull'asse sinistro.
  • Imposta il formato del titolo dell'asse su carattere a 24 punti, grassetto e corsivo.
  • Rimuove il "W-24" i dati del grafico (riga 7 dell'origine del grafico) dati non strutturati).

Il protocollo di richiesta è mostrato di seguito.

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
          }
        }
      }
    }
  ]
}

Dopo la richiesta, il grafico viene visualizzato nel seguente modo:

Modifica il risultato della formula del grafico

Spostare o ridimensionare un grafico

Le seguenti spreadsheets.batchUpdate l'esempio di codice mostra come utilizzare UpdateEmbeddedObjectPositionRequest per spostare e ridimensionare un grafico. Dopo la richiesta, il grafico specificato da CHART_ID è:

  • Ancorata alla cella A5 del foglio originale.
  • Offset di 100 pixel nella direzione X.
  • Ridimensionata a 1200 x 742 pixel (la dimensione predefinita per un grafico è 600 x 371 pixel).

La richiesta modifica solo le proprietà specificate con il parametro fields. Le altre proprietà (come offsetYPixels) conservano i valori originali.

Il protocollo di richiesta è mostrato di seguito.

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"
      }
    }
  ]
}

Leggere i dati del grafico

Le seguenti Esempio di codice spreadsheets.get mostra come ottenere i dati di un grafico da un foglio di lavoro. Parametro di query fields specifica che devono essere restituiti solo i dati del grafico.

La risposta a questa chiamata al metodo è spreadsheet , che contiene un array di sheet oggetti. Qualsiasi grafico presenti in un foglio sono rappresentati nel sheet. Se è impostato sul valore predefinito e viene omesso dalla risposta.

In questo esempio, il primo foglio (SOURCE_SHEET_ID) non contiene in modo che venga restituita una coppia di parentesi graffe vuote. Il secondo foglio contiene grafico creato da Aggiungi un grafico a colonne e nient'altro.

Il protocollo di richiesta è mostrato di seguito.

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",
          },
        }
      ]
    }
  ]
}