Formato básico

La API de Hojas de cálculo de Google te permite actualizar el formato de las celdas y los rangos en las hojas de cálculo. En los ejemplos de esta página, se muestra cómo realizar algunas operaciones de formato comunes con la API de Hojas de cálculo. Puedes encontrar más ejemplos de formato condicional en la página de recetas de Formato condicional.

Al actualizar una hoja de cálculo, algunos tipos de solicitudes pueden devolver respuestas. Se muestran en un array y cada respuesta ocupa el mismo índice que la solicitud correspondiente. Algunas solicitudes no tienen respuestas y, para ellas, la respuesta está vacía. La estructura de respuesta para estos ejemplos se puede encontrar en spreadsheets.batchUpdate.

Estos ejemplos se presentan en forma de solicitudes HTTP para que tengan lenguaje neutral. Para aprender a implementar una actualización por lotes en diferentes lenguajes mediante las bibliotecas cliente de la API de Google, consulta Cómo actualizar hojas de cálculo.

En estos ejemplos, los marcadores de posición SPREADSHEET_ID y SHEET_ID indican dónde deberías proporcionar esos ID. Puedes encontrar el ID de la hoja de cálculo en la URL de la hoja de cálculo. Para obtener el ID de la hoja, puedes usar el método spreadsheets.get. Los rangos se especifican con la notación A1. Un rango de ejemplo es Sheet1!A1:D5.

En el video anterior, aprenderás a dar formato a las celdas de las hojas de cálculo de varias maneras, como crear filas inmovilizadas, poner celdas en negrita, implementar el formato de moneda, realizar una validación de celdas y restringir los valores de las celdas.

Editar bordes de la celda

En la siguiente muestra de código de spreadsheets.batchUpdate, se indica cómo usar UpdateBordersRequest para que cada celda del rango A1:F10 tenga un borde superior e inferior de color azul, punteado. El campo innerHorizontal crea bordes horizontales en el interior del rango. Si omites el campo, los bordes solo se agregarán a la parte superior e inferior de todo el rango.

Tabla de 3 por 3, en la que cada celda tiene un borde inferior y superior de color azul y punteado.
Figura 1. Da formato a cada celda con un borde superior e inferior discontinuo y azul en una hoja.

El protocolo de solicitud se muestra a continuación.

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

Cómo dar formato a una fila de encabezado

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar RepeatCellRequest para dar formato a una fila de encabezado en una hoja. La primera solicitud actualiza el color del texto, el color de fondo, el tamaño de la fuente del texto y la justificación del texto, y pone en negrita el texto. Omitir los índices de columna en el campo range hace que se aplique formato a toda la fila. La segunda solicitud ajusta las propiedades de la hoja para que la fila de encabezado quede inmovilizada.

Tabla de 3 por 3 con una fila de encabezado con formato en una hoja.
Figura 2. Aplica formato a la fila del encabezado de la hoja.

El protocolo de solicitud se muestra a continuación.

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

Combinar celdas

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar MergeCellsRequest para combinar celdas. La primera solicitud combina el rango A1:B2 en una sola celda. La segunda solicitud combina las columnas en A3:B6 y deja las filas separadas.

Tabla de 3 por 3 con celdas combinadas en una hoja.
Figura 3. Combina las celdas de una hoja.

El protocolo de solicitud se muestra a continuación.

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

Configura un formato personalizado de fecha y hora o decimal para un rango

En la siguiente muestra de código de spreadsheets.batchUpdate, se indica cómo usar RepeatCellRequest para actualizar celdas para que tengan formatos personalizados de fecha, hora y número. La primera solicitud les proporciona a las celdas del rango A1:A10 el formato personalizado de fecha y hora hh:mm:ss am/pm, ddd mmm dd yyyy. Un ejemplo de fecha y hora en este formato es: “02:05:07 p.m., domingo, abril de 2016”.

La segunda solicitud les otorga a las celdas en B1:B10 el formato de número personalizado #,##0.0000, que indica que los números se deben agrupar con separadores de comas, que debe haber 4 dígitos después del decimal y que se deben descartar todos, excepto uno, el cero inicial. Por ejemplo, el número "3.14" se representa como "3.1400", mientras que "12345.12345" se muestra como "12,345.1235".

Tabla de 3 por 3 con formatos personalizados de fecha, hora y número en una hoja.
Figura 4: Actualiza las celdas para que tengan formatos personalizados de fecha, hora y número en una hoja.

El protocolo de solicitud se muestra a continuación.

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