Operaciones con datos

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

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.

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

En la siguiente muestra de código spreadsheets.batchUpdate, se indica 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.

El protocolo de solicitud se muestra a continuación.

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

Copiar y pegar formato de celda

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar CopyPasteRequest para copiar el formato solo en el rango A1:D10 y pegarlo en el rango F1:I10 en 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 de A1:D10 no se modifican.

El protocolo de solicitud se muestra a continuación.

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

Cortar y pegar celdas

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

El protocolo de solicitud se muestra a continuación.

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

Repetir una fórmula en un rango

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar RepeatCellRequest para copiar la fórmula =FLOOR(A1*PI()) en el rango B1:D10. El rango de la fórmula aumenta automáticamente para cada fila y columna del rango, a partir de 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()).

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

Ordena un rango con varias especificaciones de orden

En la siguiente muestra de código de spreadsheets.batchUpdate, se indica 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, luego, por la columna D en orden descendente.

El protocolo de solicitud se muestra a continuación.

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