Operaciones con datos

La API de Hojas de cálculo de Google te permite manipular datos dentro de las hojas de cálculo de varias maneras. La mayoría de las funciones disponibles para los usuarios que trabajan con la IU de Hojas de cálculo también se pueden realizar con la API de Sheets. En los ejemplos de esta página, se ilustra cómo puedes realizar algunas operaciones comunes de hojas de cálculo con la API de Sheets.

Estos ejemplos se presentan en forma de solicitudes HTTP para que sean independientes del idioma. Para obtener información sobre cómo implementar una actualización por lotes en diferentes lenguajes con las bibliotecas cliente de las APIs de Google, consulta Actualiza hojas de cálculo.

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

Cómo aplicar la validación de datos a un rango

En el siguiente ejemplo de código de spreadsheets.batchUpdate, se muestra cómo usar SetDataValidationRequest para aplicar una regla de validación de datos, en la que "value > 5", a cada celda del rango A1:D10.

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

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

Cómo copiar y pegar el formato de las celdas

En el siguiente ejemplo de código de spreadsheets.batchUpdate, se muestra cómo usar CopyPasteRequest para copiar el formato solo en el rango A1:D10 y pegarlo en el rango F1:I10 de la misma hoja. El método usa la enumeración PasteType con PASTE_FORMAT para pegar solo el formato y la validación de datos. Los valores originales en A1:D10 permanecen sin cambios.

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

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

Cómo cortar y pegar celdas

En la siguiente muestra de código de spreadsheets.batchUpdate, se muestra cómo usar CutPasteRequest. Corta el rango A1:D10 y usa la enumeración PasteType con PASTE_NORMAL para pegar sus valores, fórmulas, formato y combinaciones en el rango F1:I10 de la misma hoja. Se quita el contenido de las celdas del rango de origen original.

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

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

Cómo repetir una fórmula en un rango

En la siguiente muestra de código de spreadsheets.batchUpdate, se muestra cómo usar RepeatCellRequest para copiar la fórmula =FLOOR(A1*PI()) en el rango B1:D10. El rango de la fórmula se incrementa automáticamente para cada fila y columna del rango, comenzando con la celda superior izquierda. Por ejemplo, la celda B1 tiene la fórmula =FLOOR(A1*PI()), mientras que la celda D6 tiene la fórmula =FLOOR(C6*PI()).

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": 1,
          "endColumnIndex": 4
        },
        "cell": {
          "userEnteredValue": {
              "formulaValue": "=FLOOR(A1*PI())"
          }
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

Cómo ordenar un rango con varias especificaciones de ordenamiento

En la siguiente muestra de código de spreadsheets.batchUpdate, se muestra cómo usar SortRangeRequest para ordenar el rango A1:D10, primero por la columna B en orden ascendente, luego por la columna C en orden descendente y, por último, por la columna D en orden descendente.

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

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