Cómo usar máscaras de campo

Las máscaras de campo permiten que los llamadores de la API enumeren los campos que una solicitud debe devolver o actualizar. Con un FieldMask permite que la API evite el trabajo innecesario y mejore el rendimiento. Una máscara de campo se usa para los métodos de lectura y actualización en la API de Hojas de cálculo de Google.

Lee con una máscara de campo

Las hojas de cálculo pueden ser grandes y, a menudo, no necesitas todas las partes Spreadsheet recurso que muestra una solicitud de lectura. Puedes limitar lo que se devuelve en un Respuesta de la API de Hojas de cálculo con el parámetro de URL fields Lo mejor rendimiento, Enumera de forma explícita solo los campos que necesitas. en la respuesta.

El formato del parámetro de campos es el mismo que el de Codificación JSON de una FieldMask. Dicho en pocas palabras, varios campos diferentes están separados por comas y los subcampos se separados por puntos. Los nombres de los campos pueden especificarse con el formato camelCase o separated_by_underscores. Para mayor comodidad, hay varios subcampos del mismo pueden aparecer entre paréntesis.

Lo siguiente Solicitud spreadsheets.get ejemplo usa una máscara de campo de sheets.properties(sheetId,title,sheetType,gridProperties) para recuperar solo el ID de la hoja, el título SheetType y GridProperties de un SheetProperties objeto en todas las hojas de una hoja de cálculo:

GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties(sheetId,title,sheetType,gridProperties)

La respuesta a esta llamada de método es una Spreadsheet que contiene los componentes solicitados en la máscara de campo. Ten en cuenta que sheetType=OBJECT no contiene gridProperties:

{
  "sheets": [
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "TITLE",
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 1000,
          "columnCount": 25
        }
      }
    },
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "TITLE",
        "sheetType": "OBJECT"
      }
    }
  ]
}

Actualizar con una máscara de campo

A veces, es necesario actualizar solo ciertos campos de un objeto y, al mismo tiempo, dejar otros campos sin modificar. Solicitudes de actualización en un spreadsheets.batchUpdate usan máscaras de campo para indicarle a la API qué campos se modificarán. El la solicitud de actualización ignora los campos que no se especifiquen en la máscara de campo, y dejarlos con sus valores actuales.

También puedes anular la configuración de un campo si no lo especificas en el mensaje actualizado, pero agregando el campo a la máscara. Esto borra cualquier valor del campo anterior que tenían.

La sintaxis de las máscaras de campo de actualización es la misma que la de las máscaras de campo de lectura.

En el siguiente ejemplo, se usa la AddSheetRequest para agregar una hoja nueva del tipo Grid, inmovilizar la primera fila y cambiar el color de la nueva pestaña roja de la hoja:

POST https://sheets.googleapis.com/v1/spreadsheets/spreadsheetId:batchUpdate
{
  "spreadsheetId": "SPREADSHEET_ID",
  "replies": [
    {
      "addSheet": {
        "properties": {
          "sheetId": SHEET_ID,
          "title": "TITLE",
          "index": 6,
          "sheetType": "GRID",
          "gridProperties": {
            "rowCount": 1000,
            "columnCount": 26,
            "frozenRowCount": 1
          },
          "tabColor": {
            "red": 0.003921569
          },
          "tabColorStyle": {
            "rgbColor": {
              "red": 0.003921569
            }
          }
        }
      }
    }
  ]
}