Scrittura di base

L'API Google Sheets consente di scrivere valori e formule in celle, intervalli, insiemi di intervalli e interi fogli. Gli esempi in questa pagina illustrano come alcune operazioni di scrittura comuni possono essere eseguite con la risorsa spreadsheets.values dell'API Sheets.

Tieni presente che è anche possibile scrivere i valori delle celle utilizzando il metodo spreadsheet.batchUpdate, che può essere utile se vuoi aggiornare contemporaneamente la formattazione delle celle o altre proprietà che la risorsa spreadsheets.values non influenza. Ad esempio, se vuoi copiare un intervallo di celle da un foglio a un altro sovrascrivendo sia la formula della cella sia la formattazione della cella, puoi utilizzare il metodo UpdateCellsRequest con un spreadsheet.batchUpdate.

Tuttavia, per le semplici scritture di valori è più facile utilizzare il metodo spreadsheets.values.update o il metodo spreadsheets.values.batchUpdate.

Questi esempi sono presentati sotto forma di richieste HTTP per essere indipendenti dalla lingua. Per scoprire come implementare le scritture in lingue diverse utilizzando le librerie client delle API di Google, consulta Leggere e scrivere valori delle celle.

In questi esempi, il segnaposto SPREADSHEET_ID indica dove devi fornire l'ID del foglio di lavoro, che puoi trovare nell'URL del foglio di lavoro. Gli intervalli in cui scrivere vengono specificati utilizzando la notazione A1. Un intervallo di esempio è Foglio1!A1:D5.

Scrivere un singolo intervallo

A partire da un nuovo foglio di lavoro vuoto, il seguente spreadsheets.values.update esempio di codice mostra come scrivere i valori in un intervallo. Il parametro ValueInputOption della query è obbligatorio e determina se i valori scritti vengono analizzati (ad esempio, se una stringa viene convertita in una data).

Il corpo della richiesta è un oggetto ValueRange che descrive i valori dell'intervallo da scrivere. Il campo majorDimension indica che gli array sono elenchi di valori organizzati per righe. I valori esistenti nell'intervallo di destinazione vengono sovrascritti.

Il protocollo di richiesta è mostrato di seguito.

PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION
{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", "$20.50", "4", "3/1/2016"],
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "3/20/2016"],
    ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
  ],
}

La risposta è costituita da un oggetto UpdateValuesResponse, ad esempio questo:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:D5",
  "updatedRows": 5,
  "updatedColumns": 4,
  "updatedCells": 20,
}

Il foglio risultante è simile al seguente:

A B C D
1 Elemento Costo Fornito Data di spedizione
2 Ruota 20,50 $ 4 1/3/2016
3 Porta 15 $ 2 15/3/2016
4 Motore 100 $ 1 20/3/2016
5 Totali 135,5 $ 7 20/3/2016

Scrivere selettivamente in un intervallo

Quando scrivi valori in un intervallo, puoi evitare di modificare alcune celle esistenti impostando gli elementi dell'array corrispondenti su null. È anche possibile cancellare una cella scrivendo una stringa vuota ("").

A partire da un foglio contenente gli stessi dati prodotti dall'esempio precedente, il seguente spreadsheets.values.update esempio di codice mostra come scrivere i valori nell'intervallo B1:D4, lasciando alcune celle invariate e cancellandone altre. Il parametro ValueInputOption della query è obbligatorio e determina se i valori scritti vengono analizzati (ad esempio, se una stringa viene convertita in una data).

Il corpo della richiesta è un oggetto ValueRange che descrive i valori dell'intervallo da scrivere. Il campo majorDimension indica che gli array sono elenchi di valori organizzati per colonna.

Il protocollo di richiesta è mostrato di seguito.

PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION
{
  "range": "Sheet1!B1",
  "majorDimension": "COLUMNS",
  "values": [
    [null,"$1","$2", ""],
    [],
    [null,"4/1/2016", "4/15/2016", ""]
  ]
}

Il campo values elenca le modifiche apportate a ogni colonna dell'intervallo. Il primo array indica che B1 deve essere lasciato invariato (a causa dell'elemento dell'array null), mentre B4 deve essere cancellato (stringa vuota). I valori di B2 e B3 sono stati aggiornati. Il terzo array esegue le stesse operazioni sulla colonna D, mentre il secondo array vuoto indica che la colonna C deve essere lasciata invariata.

La risposta è costituita da un oggetto UpdateValuesResponse come questo:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!B1:D5",
  "updatedRows": 3,
  "updatedColumns": 2,
  "updatedCells": 6,
}

Il foglio risultante è simile al seguente:

A B C D
1 Elemento Costo Fornito Data di spedizione
2 Ruota 1,00 $ 4 1/4/2016
3 Porta € 2 2 15/4/2016
4 Motore 1
5 Totali $ 3,00 7 15/4/2016

Tieni presente che la riga "Totali", anche se non viene modificata direttamente da questa richiesta, cambia perché le sue celle contengono formule che dipendono dalle celle modificate.

Scrivere in più intervalli

A partire da un foglio vuoto, il seguente spreadsheets.values.batchUpdate esempio di codice mostra come scrivere i valori negli intervalli Foglio1!A1:A4 e Foglio1!B1:D2. I valori esistenti nell'intervallo di destinazione vengono sovrascritti. Il corpo della richiesta è costituito da un oggetto ValueInputOption che mostra come interpretare i dati di input e da un array di oggetti ValueRange corrispondenti a ogni intervallo scritto. Il campo majorDimension determina se gli array inclusi vengono interpretati come array di colonne o righe.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values:batchUpdate
{
  "valueInputOption": "VALUE_INPUT_OPTION",
  "data": [
    {
      "range": "Sheet1!A1:A4",
      "majorDimension": "COLUMNS",
      "values": [
        ["Item", "Wheel", "Door", "Engine"]
      ]
    },
    {
      "range": "Sheet1!B1:D2",
      "majorDimension": "ROWS",
      "values": [
        ["Cost", "Stocked", "Ship Date"],
        ["$20.50", "4", "3/1/2016"]
      ]
    }
  ]
}

La risposta è costituita da un oggetto che elenca le statistiche aggiornate delle celle e da un array di oggetti UpdateValuesResponse, uno per ogni intervallo aggiornato. Ad esempio:

{
  "spreadsheetId": SPREADSHEET_ID,
  "totalUpdatedRows": 4,
  "totalUpdatedColumns": 4,
  "totalUpdatedCells": 10,
  "totalUpdatedSheets": 1,
  "responses": [
    {
      "spreadsheetId": SPREADSHEET_ID,
      "updatedRange": "Sheet1!A1:A4",
      "updatedRows": 4,
      "updatedColumns": 1,
      "updatedCells": 4,
    },
    {
      "spreadsheetId": SPREADSHEET_ID,
      "updatedRange": "Sheet1!B1:D2",
      "updatedRows": 2,
      "updatedColumns": 3,
      "updatedCells": 6,
    }
  ],
}

Il foglio risultante è simile al seguente:

A B C D
1 Elemento Costo Fornito Data di spedizione
2 Ruota 20,50 $ 4 1/3/2016
3 Porta
4 Motore
5

Scrivere valori senza analisi

A partire da un foglio vuoto, il seguente spreadsheets.values.update esempio di codice mostra come scrivere i valori nell'intervallo Foglio1!A1:E1, ma utilizza il parametro di query RAW ValueInputOption per impedire che le stringhe scritte vengano analizzate come formule, valori booleani o numeri. Vengono visualizzati come stringhe e l'allineamento del testo è giustificato nel foglio.

Il corpo della richiesta è un oggetto ValueRange che descrive i valori dell'intervallo da scrivere. Il campo majorDimension indica che gli array sono elenchi di valori organizzati per righe. I valori esistenti nell'intervallo di destinazione vengono sovrascritti.

Il protocollo di richiesta è mostrato di seguito.

PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1?valueInputOption=RAW
{
  "range": "Sheet1!A1:E1",
  "majorDimension": "ROWS",
  "values": [
    ["Data", 123.45, true, "=MAX(D2:D4)", "10"]
  ],
}

La risposta è costituita da un oggetto UpdateValuesResponse come questo:

{
  "spreadsheetId": SPREADSHEET_ID,
  "updatedRange": "Sheet1!A1:E1",
  "updatedRows": 1,
  "updatedColumns": 5,
  "updatedCells": 5,
}

Il foglio risultante è simile al seguente:

A B C D E
1 Dati 123,45 VERO =MAX(D2:D4) 10
2

Tieni presente che "TRUE" è centrato ed è un valore booleano, mentre "123.45" è allineato a destra perché è un numero e "10" è allineato a sinistra perché è una stringa. La formula non viene analizzata e viene visualizzata anche come stringa.

Aggiungi valori

Inizia con un foglio come la tabella riportata di seguito:

A B C D
1 Elemento Costo Fornito Data di spedizione
2 Ruota 20,50 $ 4 1/3/2016
3

Il seguente spreadsheets.values.append esempio di codice mostra come aggiungere due nuove righe di valori a partire dalla riga 3. Il parametro ValueInputOption della query è obbligatorio e determina se i valori scritti vengono analizzati (ad esempio, se una stringa viene convertita in una data).

Il corpo della richiesta è un oggetto ValueRange che descrive i valori dell'intervallo da scrivere. Il campo majorDimension indica che gli array sono elenchi di valori organizzati per righe.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION
{
  "range": "Sheet1!A1:E1",
  "majorDimension": "ROWS",
  "values": [
    ["Door", "$15", "2", "3/15/2016"],
    ["Engine", "$100", "1", "3/20/2016"],
  ],
}

La risposta è costituita da un oggetto AppendValuesResponse come questo:

{
  "spreadsheetId": SPREADSHEET_ID,
  "tableRange": "Sheet1!A1:D2",
  "updates": {
    "spreadsheetId": SPREADSHEET_ID,
    "updatedRange": "Sheet1!A3:D4",
    "updatedRows": 2,
    "updatedColumns": 4,
    "updatedCells": 8,
  }
}

Il foglio risultante è simile al seguente:

A B C D
1 Elemento Costo Fornito Data di spedizione
2 Ruota 20,50 $ 4 1/3/2016
3 Porta 15 $ 2 15/3/2016
4 Motore 100 $ 1 20/3/2016
5