Ranking

La API de Google Sheets te permite crear y actualizar gráficos dentro de hojas de cálculo como según sea necesario. Los ejemplos de esta página ilustran cómo puedes lograr algunas las operaciones de gráfico con la API de Hojas de cálculo.

Estos ejemplos se presentan en forma de solicitudes HTTP como lenguaje neutrales. Para aprender a implementar una actualización por lotes en diferentes idiomas con las bibliotecas cliente de la API de Google, consulta Actualización hojas de cálculo.

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

Además, el marcador de posición CHART_ID indica el ID de un determinado gráfico. Puedes establecer este ID cuando crees un gráfico con la API de Hojas de cálculo. o permite que la API de Hojas de cálculo genere una por ti. Puedes obtener los IDs de gráficos existentes con el spreadsheets.get.

Por último, el marcador de posición SOURCE_SHEET_ID indica que tu hoja tiene los datos de origen. En estos ejemplos, esta es la tabla que aparece en Fuente del gráfico datos categóricos.

Datos de origen del gráfico

Para estos ejemplos, supón que la hoja de cálculo utilizada tiene la siguiente fuente datos en su primera hoja ("Sheet1"). Las cadenas de la primera fila son etiquetas para las columnas individuales. Para ver ejemplos de cómo leer de otras hojas en para tu hoja de cálculo, consulta Notación A1.

A B C D E
1 Número de modelo Ventas - Ene Ventas - feb Ventas de marzo Ventas totales
2 D-01X 68 74 60 202
3 FR-0B1 97 76 88 261
4 P-034 27 49 32 108
5 P-105 46 44 67 157
6 W-11 75 68 87 230
7 W-24 74 52 62 188

Agrega un gráfico de columnas

Lo siguiente spreadsheets.batchUpdate de muestra de código muestra cómo usar el AddChartRequest para crear un gráfico de columnas a partir de los datos de origen, colocándolo en una nueva hoja. El hace lo siguiente para configurar el gráfico:

  • Establece el tipo de gráfico como un gráfico de columnas.
  • Agrega una leyenda a la parte inferior del gráfico.
  • Establece los títulos del gráfico y de los ejes.
  • Configura 3 series de datos, que representan ventas de 3 meses diferentes, mientras que con el formato y los colores predeterminados.

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "title": "Model Q1 Sales",
            "basicChart": {
              "chartType": "COLUMN",
              "legendPosition": "BOTTOM_LEGEND",
              "axis": [
                {
                  "position": "BOTTOM_AXIS",
                  "title": "Model Numbers"
                },
                {
                  "position": "LEFT_AXIS",
                  "title": "Sales"
                }
              ],
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1
                        }
                      ]
                    }
                  }
                }
              ],
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 2,
                          "endColumnIndex": 3
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 3,
                          "endColumnIndex": 4
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                }
              ],
              "headerCount": 1
            }
          },
          "position": {
            "newSheet": true
          }
        }
      }
    }
  ]
}

La solicitud crea un gráfico en una hoja nueva de la siguiente manera:

Agregar resultado de receta de gráfico de columnas

Agrega un gráfico circular

Lo siguiente spreadsheets.batchUpdate de muestra de código muestra cómo usar el AddChartRequest para crear un gráfico circular 3D a partir de los datos de origen. La solicitud hace lo siguiente para configurar el gráfico:

  • Establece el título del gráfico.
  • Agrega una leyenda a la derecha del gráfico.
  • Establece el gráfico como un gráfico circular en 3D. Ten en cuenta que los gráficos circulares 3D no pueden tener una “agujero en forma de dona” en el centro como los gráficos circulares planos.
  • Establece la serie de datos del gráfico como las ventas totales para cada número de modelo.
  • Ancla el gráfico en la celda C3 de la hoja especificada por SHEET_ID. con un desplazamiento de 50 píxeles en la dirección X e Y.

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "title": "Model Q1 Total Sales",
            "pieChart": {
              "legendPosition": "RIGHT_LEGEND",
              "threeDimensional": true,
              "domain": {
                "sourceRange": {
                  "sources": [
                    {
                      "sheetId": SOURCE_SHEET_ID,
                      "startRowIndex": 0,
                      "endRowIndex": 7,
                      "startColumnIndex": 0,
                      "endColumnIndex": 1
                    }
                  ]
                }
              },
              "series": {
                "sourceRange": {
                  "sources": [
                    {
                      "sheetId": SOURCE_SHEET_ID,
                      "startRowIndex": 0,
                      "endRowIndex": 7,
                      "startColumnIndex": 4,
                      "endColumnIndex": 5
                    }
                  ]
                }
              },
            }
          },
          "position": {
            "overlayPosition": {
              "anchorCell": {
                "sheetId": SHEET_ID,
                "rowIndex": 2,
                "columnIndex": 2
              },
              "offsetXPixels": 50,
              "offsetYPixels": 50
            }
          }
        }
      }
    }
  ]
}

La solicitud crea un gráfico como el siguiente:

Agregar resultado de receta de gráfico circular

También puedes actualizar el valor de legendPosition desde RIGHT_LEGEND a LABELED_LEGEND dentro de la solicitud para que los valores de la leyenda se conectadas a las porciones del gráfico circular.

'legendPosition': 'LABELED_LEGEND',

La solicitud actualizada crea un gráfico como el siguiente:

Agregar resultado de receta de gráfico circular

Agrega un gráfico de líneas con varios rangos no adyacentes

Lo siguiente spreadsheets.batchUpdate de muestra de código muestra cómo usar el AddChartRequest para crear un gráfico de líneas a partir de los datos de origen y colocarlo en la hoja de origen. La selección de rangos no adyacentes puede usarse para excluir filas del ChartSourceRange

Para configurar el gráfico, la solicitud hace lo siguiente:

  • Establece el tipo de gráfico como gráfico de líneas.
  • Establece el título del eje x horizontal.
  • Configura una serie de datos que representa las ventas. Establece A1:A3 y A6:A7 como domain, y B1:B3 y B6:B7 como una series, y, al mismo tiempo, usar el formato y los colores predeterminados. Los rangos se especifican con A1 notación en la URL de la solicitud.
  • Ancla el gráfico en la celda H8 de la hoja especificada por SHEET_ID.

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "basicChart": {
              "chartType": "LINE",
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "startRowIndex": 0,
                          "endRowIndex": 3,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1,
                          "sheetId": SOURCE_SHEET_ID
                        },
                        {
                          "startRowIndex": 5,
                          "endRowIndex": 7,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1,
                          "sheetId": SOURCE_SHEET_ID
                        }
                      ]
                    }
                  }
                }
              ],
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "startRowIndex": 0,
                          "endRowIndex": 3,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2,
                          "sheetId": SOURCE_SHEET_ID
                        },
                        {
                          "startRowIndex": 5,
                          "endRowIndex": 7,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2,
                          "sheetId": SOURCE_SHEET_ID
                        }
                      ]
                    }
                  }
                }
              ]
            }
          },
          "position": {
            "overlayPosition": {
              "anchorCell": {
                "sheetId": SOURCE_SHEET_ID,
                "rowIndex": 8,
                "columnIndex": 8
              }
            }
          }
        }
      }
    }
  ]
}

La solicitud crea un gráfico en una hoja nueva de la siguiente manera:

Agrega una receta de gráfico de líneas de rango no adyacente
resultado

Cómo borrar un gráfico

Lo siguiente spreadsheets.batchUpdate de muestra de código muestra cómo usar el DeleteEmbeddedObjectRequest para borrar un gráfico especificado por el CHART_ID.

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteEmbeddedObject": {
        "objectId": CHART_ID
      }
    }
  ]
}

Edita las propiedades de un gráfico

Lo siguiente spreadsheets.batchUpdate de muestra de código muestra cómo usar el UpdateChartSpecRequest Para editar el gráfico creado con la receta Agrega un gráfico de columnas, modificar sus datos, tipo y apariencia. No se pueden usar los subconjuntos de propiedades del gráfico cambian de forma individual. Para realizar cambios, debes proporcionar todo el campo spec con un UpdateChartSpecRequest. En esencia, editar la especificación de un gráfico requiere reemplazarlo por uno nuevo.

La siguiente solicitud actualiza el gráfico original (especificado por CHART_ID):

  • Establece el tipo de gráfico en BAR.
  • Mueve la leyenda a la derecha del gráfico.
  • Invierte los ejes para que "Ventas" en el eje inferior, y "Números de modelo" está en el eje izquierdo.
  • Fija el formato del título del eje en una fuente de 24 puntos, en negrita y en cursiva.
  • Quita el “W-24” datos del gráfico (fila 7 de la fuente del gráfico) datos).

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateChartSpec": {
        "chartId": CHART_ID,
        "spec": {
          "title": "Model Q1 Sales",
          "basicChart": {
            "chartType": "BAR",
            "legendPosition": "RIGHT_LEGEND",
            "axis": [
              {
                "format": {
                  "bold": true,
                  "italic": true,
                  "fontSize": 24
                },
                "position": "BOTTOM_AXIS",
                "title": "Sales"
              },
              {
                "format": {
                  "bold": true,
                  "italic": true,
                  "fontSize": 24
                },
                "position": "LEFT_AXIS",
                "title": "Model Numbers"
              }
            ],
            "domains": [
              {
                "domain": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 0,
                        "endColumnIndex": 1
                      }
                    ]
                  }
                }
              }
            ],
            "series": [
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 1,
                        "endColumnIndex": 2
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              },
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 2,
                        "endColumnIndex": 3
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              },
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 3,
                        "endColumnIndex": 4
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              }
            ],
            "headerCount": 1
          }
        }
      }
    }
  ]
}

Después de la solicitud, el gráfico se verá así:

Editar resultado de receta de gráfico

Mueve un gráfico o cambia su tamaño

Lo siguiente spreadsheets.batchUpdate de muestra de código muestra cómo usar el UpdateEmbeddedObjectPositionRequest para mover un gráfico y cambiar su tamaño. Después de la solicitud, el gráfico especificado por CHART_ID es:

  • Anclado en la celda A5 de la hoja original.
  • Se desplaza 100 píxeles en el sentido X.
  • Se cambió el tamaño a 1200 por 742 píxeles (el tamaño predeterminado de un gráfico es 600 por 371 píxeles).

La solicitud solo cambia las propiedades especificadas con el parámetro fields. Otras propiedades (como offsetYPixels) conservan sus valores originales.

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateEmbeddedObjectPosition": {
        "objectId": CHART_ID,
        "newPosition": {
          "overlayPosition": {
            "anchorCell": {
              "rowIndex": 4,
              "columnIndex": 0
            },
            "offsetXPixels": 100,
            "widthPixels": 1200,
            "heightPixels": 742
          }
        },
        "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels"
      }
    }
  ]
}

Leer datos del gráfico

Lo siguiente Muestra de código spreadsheets.get muestra cómo obtener datos de gráficos de una hoja de cálculo. El parámetro de consulta fields especifica que solo se deben mostrar los datos del gráfico.

La respuesta a esta llamada de método es una spreadsheet que contiene un array de Objetos sheet. Cualquier gráfico presentes en una hoja se representan en el Objeto sheet. Si un se establece con el valor predeterminado, se omite de la respuesta.

En este ejemplo, la primera hoja (SOURCE_SHEET_ID) no tiene gráficos, por lo que se muestra un par vacío de llaves. La segunda hoja tiene la gráfico que se creó en Add a column chart, nada más.

El protocolo de solicitud se muestra a continuación.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{
  "sheets": [
    {},
    {
      "charts": [
        {
          "chartId": CHART_ID,
          "position": {
            "sheetId": SHEET_ID
          },
          "spec": {
            "basicChart": {
              "axis": [
                {
                  "format": {
                    "bold": false,
                    "italic": false
                  },
                  "position": "BOTTOM_AXIS",
                  "title": "Model Numbers"
                },
                {
                  "format": {
                    "bold": false,
                    "italic": false
                  },
                  "position": "LEFT_AXIS",
                  "title": "Sales"
                }
              ],
              "chartType": "COLUMN",
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 1
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 0,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  }
                }
              ],
              "legendPosition": "BOTTOM_LEGEND",
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 2,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 1,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 3,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 2,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 4,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 3,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                }
              ]
            },
            "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS",
            "title": "Model Q1 Sales",
          },
        }
      ]
    }
  ]
}