Operazioni sui dati

L'API Fogli Google consente di manipolare i dati all'interno dei fogli di lavoro in vari modi. Gran parte delle funzionalità disponibili per gli utenti che lavorano con l'interfaccia utente di Fogli è disponibile anche con l'API Fogli. Gli esempi in questa pagina mostrano come eseguire alcune operazioni comuni sui fogli di lavoro con l'API Fogli.

Questi esempi sono presentati sotto forma di richieste HTTP per essere neutrali dal linguaggio. Per informazioni su come implementare un aggiornamento batch in diversi linguaggi utilizzando le librerie client delle API di Google, consulta Aggiornare i fogli di lavoro.

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

Applicare la convalida dei dati a un intervallo

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare SetDataValidationRequest per applicare una regola di convalida dei dati, con "valore > 5", a ogni cella dell'intervallo A1:D10.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "setDataValidation": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "rule": {
          "condition": {
            "type": "NUMBER_GREATER",
            "values": [
              {
                "userEnteredValue": "5"
              }
            ]
          },
          "inputMessage": "Value must be > 5",
          "strict": true
        }
      }
    }
  ]
}

Copiare e incollare la formattazione delle celle

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare CopyPasteRequest per copiare la formattazione solo nell'intervallo A1:D10 e incollarla nell'intervallo F1:I10 nello stesso foglio. Il metodo utilizza l'enumerazione PasteType con PASTE_FORMAT per incollare solo la formattazione e la convalida dei dati. I valori originali in A1:D10 rimangono invariati.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "copyPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 5,
          "endColumnIndex": 9
        },
        "pasteType": "PASTE_FORMAT",
        "pasteOrientation": "NORMAL"
      }
    }
  ]
}

Taglia e incolla le celle

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare CutPasteRequest. Taglia l'intervallo A1:D10 e utilizza l'enumerazione PasteType con PASTE_NORMAL per incollare i valori, le formule e la formattazione e le unioni all'intervallo F1:I10 nello stesso foglio. I contenuti delle celle dell'intervallo di origine originale vengono rimossi.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "cutPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "rowIndex": 0,
          "columnIndex": 5
        },
        "pasteType": "PASTE_NORMAL"
      }
    }
  ]
}

Ripetere una formula su un intervallo

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare RepeatCellRequest per copiare la formula =FLOOR(A1*PI()) nell'intervallo B1:D10. L'intervallo della formula viene incrementato automaticamente per ogni riga e colonna nell'intervallo, a partire dalla cella superiore sinistra. Ad esempio, la cella B1 ha la formula =FLOOR(A1*PI()), mentre la cella D6 ha la formula =FLOOR(C6*PI()).

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 4
        },
        "cell": {
          "userEnteredValue": {
              "formulaValue": "=FLOOR(A1*PI())"
          }
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

Ordinare un intervallo con più specifiche di ordinamento

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare SortRangeRequest per ordinare l'intervallo A1:D10, prima per la colonna B in ordine crescente, poi per la colonna C in ordine decrescente, poi per la colonna D in ordine decrescente.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "sortRange": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "sortSpecs": [
          {
            "dimensionIndex": 1,
            "sortOrder": "ASCENDING"
          },
          {
            "dimensionIndex": 2,
            "sortOrder": "DESCENDING"
          },
          {
            "dimensionIndex": 3,
            "sortOrder": "DESCENDING"
          }
        ]
      }
    }
  ]
}