Formattazione di base

L'API Fogli Google consente di aggiornare la formattazione di celle e intervalli all'interno dei fogli di lavoro. Gli esempi in questa pagina illustrano come eseguire alcune operazioni di formattazione comuni con l'API Fogli. Puoi trovare altri esempi di formattazione condizionale nella pagina della formula Formattazione condizionale.

Quando aggiorni un foglio di lavoro, alcuni tipi di richieste potrebbero restituire risposte. Questi vengono restituiti in un array e ogni risposta occupa lo stesso indice della richiesta corrispondente. Alcune richieste non hanno risposte e per quelle la risposta è vuota. La struttura delle risposte per questi esempi è disponibile in spreadsheets.batchUpdate.

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.

Nel video sopra, imparerai a formattare le celle del foglio di lavoro in vari modi, tra cui: creare righe bloccate, applicare grassetto alle celle, implementare la formattazione della valuta, eseguire la convalida delle celle e limitare i valori delle celle.

Modifica i bordi delle celle

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare UpdateBordersRequest per assegnare a ogni cella nell'intervallo A1:F10 un bordo superiore e inferiore blu tratteggiato. Il campo innerHorizontal crea bordi orizzontali all'interno dell'intervallo. Se il campo non viene specificato, i bordi vengono aggiunti solo nella parte superiore e inferiore dell'intero intervallo.

Tabella 3 x 3 in cui ogni cella ha un bordo superiore e inferiore blu tratteggiato.
Figura 1. Formatta ogni cella con un bordo superiore e inferiore blu tratteggiato di un foglio.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateBorders": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 6
        },
        "top": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "bottom": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "innerHorizontal": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
      }
    }
  ]
}

Formattare una riga di intestazione

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare RepeatCellRequest per formattare una riga di intestazione in un foglio. La prima richiesta aggiorna il colore del testo, il colore dello sfondo, la dimensione del carattere del testo e la giustificazione del testo e rende il testo in grassetto. Se gli indici di colonna vengono omessi nel campo range, l'intera riga viene formattata. La seconda richiesta regola le proprietà del foglio in modo che la riga di intestazione sia bloccata.

Tabella 3 x 3 con una riga di intestazione formattata in un foglio.
Figura 2. Formatta la riga di intestazione in un foglio.

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": 1
        },
        "cell": {
          "userEnteredFormat": {
            "backgroundColor": {
              "red": 0.0,
              "green": 0.0,
              "blue": 0.0
            },
            "horizontalAlignment" : "CENTER",
            "textFormat": {
              "foregroundColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              },
              "fontSize": 12,
              "bold": true
            }
          }
        },
        "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)"
      }
    },
    {
      "updateSheetProperties": {
        "properties": {
          "sheetId": SHEET_ID,
          "gridProperties": {
            "frozenRowCount": 1
          }
        },
        "fields": "gridProperties.frozenRowCount"
      }
    }
  ]
}

Unisci celle

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare MergeCellsRequest per unire le celle. La prima richiesta unisce l'intervallo A1:B2 in una singola cella. La seconda richiesta unisce le colonne in A3:B6, lasciando le righe separate.

Tabella 3 x 3 con celle unite in un foglio.
Figura 3. Unisci le celle in un foglio.

Il protocollo di richiesta è mostrato di seguito.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 2,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_ALL"
      }
    },
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 2,
          "endRowIndex": 6,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_COLUMNS"
      }
    },
  ]
}

Imposta un formato data/ora o decimale personalizzato per un intervallo

Il seguente esempio di codice di spreadsheets.batchUpdate mostra come utilizzare RepeatCellRequest per aggiornare le celle in modo che abbiano formati di data/ora e numeri personalizzati. La prima richiesta fornisce alle celle nell'intervallo A1:A10 il formato data/ora personalizzato hh:mm:ss am/pm, ddd mmm dd yyyy. Un esempio di data/ora in questo formato è: "02:05:07 PM, Sun Apr 03 2016".

La seconda richiesta fornisce alle celle in B1:B10 il formato del numero personalizzato #,##0.0000, che indica che i numeri devono essere raggruppati con separatori a virgola, che devono essere presenti 4 cifre dopo il decimale e che devono essere eliminati tutti i numeri iniziali tranne uno. Ad esempio, il numero "3,14" diventa "3,1400", mentre "12345.12345" viene visualizzato come "12,345,1235".

Tabella 3 x 3 con formati personalizzati di data e ora in un foglio.
Figura 4. Aggiorna le celle in modo che abbiano formati personalizzati per data e ora in un foglio.

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": 0,
          "endColumnIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "DATE",
              "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    },
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 2
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "NUMBER",
              "pattern": "#,##0.0000"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    }
  ]
}