Formato básico

La API de Hojas de cálculo de Google te permite actualizar el formato de celdas y rangos dentro de hojas de cálculo. En los ejemplos de esta página, se muestra la forma de realizar algunas operaciones comunes de formato 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.

Cuando se actualiza una hoja de cálculo, es posible que algunos tipos de solicitudes muestren respuestas. Estas 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 de estos ejemplos se puede encontrar en spreadsheets.batchUpdate.

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

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

En el video anterior, aprenderás a dar formato a celdas de hojas de cálculo de varias maneras, entre las que se incluyen las siguientes: crear filas inmovilizadas, dar formato de negrita a las celdas, implementar formato de moneda, validar celdas y restringir valores de estas.

Editar bordes de celdas

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

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

A continuación, se muestra el protocolo de solicitud.

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 de spreadsheets.batchUpdate, se muestra 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 y la justificación del texto, y lo cambia a negrita. Si se omiten los índices de columna en el campo range, se formateará toda la fila. La segunda solicitud ajusta las propiedades de la hoja para que la fila de encabezado no se actualice.

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

A continuación, se muestra el protocolo de solicitud.

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 de spreadsheets.batchUpdate, se muestra cómo usar MergeCellsRequest para combinar celdas. Con la primera solicitud, se combina el rango A1:B2 en una sola celda. Con la segunda solicitud se combinan las columnas de A3:B6 y se mantienen las filas separadas.

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

A continuación, se muestra el protocolo de solicitud.

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

Cómo establecer formatos personalizados de fecha y hora o decimal para un rango

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

Con la segunda solicitud, se aplica a las celdas de B1:B10 el formato de número personalizado #,##0.0000, que indica que los números se deben agrupar con separadores de coma, que debe haber 4 dígitos después del decimal y que se deben borrar todos los ceros que haya adelante, excepto uno. Por ejemplo, el número “3.14” se muestra como “3.1400”, mientras que “12345.12345” se muestra como “12,345.1235”.

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

A continuación, se muestra el protocolo de solicitud.

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