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 eseguire alcune
operazioni di scrittura comuni con la
spreadsheets.values
risorsa dell'API Sheets.
Tieni presente che è anche possibile scrivere i valori delle celle utilizzando il
spreadsheet.batchUpdate
metodo, che può essere utile se vuoi aggiornare contemporaneamente la formattazione delle celle
o altre proprietà che la
spreadsheets.values
risorsa non influenza. Ad esempio, se vuoi copiare un intervallo di celle da
un foglio a un altro sovrascrivendo sia la formula che la
formattazione delle celle, puoi utilizzare il
UpdateCellsRequest
metodo con un
spreadsheet.batchUpdate.
Tuttavia, per le semplici scritture di valori è più facile utilizzare il
spreadsheets.values.update
metodo o il
spreadsheets.values.batchUpdate
metodo.
Questi esempi vengono presentati sotto forma di richieste HTTP per essere indipendenti dal linguaggio. Per scoprire come implementare le scritture in lingue diverse utilizzando le librerie client delle API di Google, consulta Leggere e scrivere i valori delle celle.
In questi esempi, il segnaposto SPREADSHEET_ID indica
dove devi fornire l'ID del
foglio di lavoro, che può essere individuato dall'URL del
foglio di lavoro. Gli intervalli in cui scrivere vengono specificati utilizzando la notazione A1. Un intervallo di esempio è Sheet1!A1:D5.
Scrivere un singolo intervallo
Partendo da un nuovo foglio di lavoro vuoto, il seguente
spreadsheets.values.update
esempio di codice mostra come scrivere i valori in un intervallo. Il
ValueInputOption parametro
di 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
ValueRange
oggetto che descrive i valori dell'intervallo da scrivere. Il
majorDimension campo
indica che gli array sono elenchi di valori organizzati per righe. I valori esistenti nell'intervallo di destinazione vengono sovrascritti.
Di seguito è riportato il protocollo della richiesta.
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
UpdateValuesResponse
oggetto, come il seguente:
{
"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 | Disponibile | Data di spedizione |
| 2 | Ruota | 20,50 $ | 4 | 01/03/2016 |
| 3 | Porta | 15 $ | 2 | 15/03/2016 |
| 4 | Motore | 100 $ | 1 | 20/03/2016 |
| 5 | Totali | 135,5 $ | 7 | 20/03/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 ("") al suo interno.
Partendo 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 selettivamente
alcune celle invariate e cancellandone altre. Il
ValueInputOption parametro
di 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
ValueRange
oggetto che descrive i valori dell'intervallo da scrivere. Il
majorDimension campo
indica che gli array sono elenchi di valori organizzati per colonne.
Di seguito è riportato il protocollo della richiesta.
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 qui elenca le modifiche apportate a ogni colonna dell'intervallo. Il primo array indica che B1 deve rimanere invariato (a causa dell'elemento dell'array null), mentre B4 deve essere cancellato (stringa vuota). I valori di B2 e B3 vengono aggiornati. Il terzo array esegue le stesse operazioni sulla colonna D, mentre il secondo array vuoto indica che la colonna C deve rimanere invariata.
La risposta è costituita da un
UpdateValuesResponse
oggetto come il seguente:
{
"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 | Disponibile | Data di spedizione |
| 2 | Ruota | 1,00 $ | 4 | 01/04/2016 |
| 3 | Porta | 2 $ | 2 | 15/04/2016 |
| 4 | Motore | 1 | ||
| 5 | Totali | 3,00 $ | 7 | 15/04/2016 |
Tieni presente che la riga "Totali", sebbene non sia stata modificata direttamente da questa richiesta, cambia perché le sue celle contengono formule che dipendono dalle celle modificate.
Scrivere in più intervalli
Partendo da un foglio vuoto, il seguente
spreadsheets.values.batchUpdate
esempio di codice mostra come scrivere i valori negli intervalli Sheet1!A1:A4 e
Sheet1!B1:D2. I valori esistenti nell'intervallo di destinazione vengono sovrascritti. Il corpo della richiesta è costituito da un
ValueInputOption oggetto che
mostra come interpretare i dati di input e da un array di
ValueRange
oggetti corrispondenti a ogni intervallo scritto. Il campo
determina se gli array inclusi vengono interpretati come array di colonne o righe.majorDimension
Di seguito è riportato il protocollo della richiesta.
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 delle celle aggiornate
e da un array di
UpdateValuesResponse
oggetti, 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 | Disponibile | Data di spedizione |
| 2 | Ruota | 20,50 $ | 4 | 01/03/2016 |
| 3 | Porta | |||
| 4 | Motore | |||
| 5 |
Scrivere valori senza analisi
Partendo da un foglio vuoto, il seguente
spreadsheets.values.update
esempio di codice mostra come scrivere i valori nell'intervallo Sheet1!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 visualizzate come stringhe e l'allineamento del testo è giustificato nel foglio.
Il corpo della richiesta è un
ValueRange
oggetto che descrive i valori dell'intervallo da scrivere. Il
majorDimension campo
indica che gli array sono elenchi di valori organizzati per righe. I valori esistenti nell'intervallo di destinazione vengono sovrascritti.
Di seguito è riportato il protocollo della richiesta.
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
UpdateValuesResponse
oggetto come il seguente:
{
"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 "VERO" è centrato ed è un valore booleano, mentre "123, 45" è giustificato a destra perché è un numero e "10" è giustificato a sinistra perché è una stringa. La formula non viene analizzata e viene visualizzata anche come stringa.
Aggiungere valori
Inizia con un foglio simile alla tabella riportata di seguito:
| A | B | C | D | |
| 1 | Elemento | Costo | Disponibile | Data di spedizione |
| 2 | Ruota | 20,50 $ | 4 | 01/03/2016 |
| 3 |
Il seguente
spreadsheets.values.append
esempio di codice mostra come aggiungere due nuove righe di valori a partire dalla riga 3. Il
ValueInputOption parametro
di 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
ValueRange
oggetto che descrive i valori dell'intervallo da scrivere. Il
majorDimension campo
indica che gli array sono elenchi di valori organizzati per righe.
Di seguito è riportato il protocollo della richiesta.
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
AppendValuesResponse
oggetto come il seguente:
{
"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 | Disponibile | Data di spedizione |
| 2 | Ruota | 20,50 $ | 4 | 01/03/2016 |
| 3 | Porta | 15 $ | 2 | 15/03/2016 |
| 4 | Motore | 100 $ | 1 | 20/03/2016 |
| 5 |