Biểu đồ

API Google Trang tính cho phép bạn tạo và cập nhật biểu đồ trong bảng tính như cần thiết. Các ví dụ trên trang này minh hoạ cách bạn có thể đạt được một số hoạt động biểu đồ bằng API Trang tính.

Những ví dụ này được trình bày dưới dạng các yêu cầu HTTP để trở thành ngôn ngữ bình thường. Để tìm hiểu cách triển khai quá trình cập nhật theo lô bằng nhiều ngôn ngữ bằng cách sử dụng thư viện ứng dụng API của Google, hãy xem phần Cập nhật bảng tính.

Trong những ví dụ này, phần giữ chỗ SPREADSHEET_IDSHEET_ID cho biết nơi bạn sẽ cung cấp các mã đó. Bạn có thể tìm thấy bảng tính Mã nhận dạng trong URL của bảng tính. Bạn có thể tải mã trang tính bằng cách sử dụng spreadsheets.get. Chiến lược phát hành đĩa đơn dải ô được chỉ định bằng ký hiệu A1. Một dải ô mẫu là Sheet1!A1:D5.

Ngoài ra, phần giữ chỗ CHART_ID cho biết mã nhận dạng của một miền cụ thể biểu đồ. Bạn có thể đặt mã này khi tạo biểu đồ bằng API Trang tính, hoặc cho phép API Trang tính tạo một trang tính cho bạn. Bạn có thể lấy mã của biểu đồ hiện có với Phương thức spreadsheets.get.

Cuối cùng, phần giữ chỗ SOURCE_SHEET_ID biểu thị trang tính của bạn bằng dữ liệu nguồn. Trong những ví dụ này, đây là bảng được liệt kê bên dưới Nguồn biểu đồ .

Dữ liệu nguồn trên biểu đồ

Đối với những ví dụ này, giả sử bảng tính đang được sử dụng có nguồn sau trong trang tính đầu tiên ("Sheet1"). Các chuỗi trong hàng đầu tiên là nhãn cho từng cột riêng lẻ. Để xem ví dụ về cách đọc từ các trang tính khác trong bảng tính, hãy xem phần ký hiệu A1.

A B C D E
1 Số mô hình Doanh số – Tháng 1 Doanh số – Tháng 2 Doanh số – Tháng 3 Tổng doanh số
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

Thêm biểu đồ cột

Nội dung sau đây spreadsheets.batchUpdate mã mẫu cho biết cách sử dụng AddChartRequest để tạo biểu đồ cột từ dữ liệu nguồn, đặt biểu đồ đó vào trang tính mới. Chiến lược phát hành đĩa đơn sẽ thực hiện những việc sau để định cấu hình biểu đồ:

  • Đặt loại biểu đồ dưới dạng biểu đồ cột.
  • Thêm chú giải vào cuối biểu đồ.
  • Đặt tiêu đề trục và biểu đồ.
  • Thiết lập 3 chuỗi dữ liệu, đại diện cho doanh số của 3 tháng trong khi bằng cách sử dụng định dạng và màu sắc mặc định.

Giao thức yêu cầu được trình bày dưới đây.

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

Yêu cầu sẽ tạo một biểu đồ trong một trang tính mới như sau:

Thêm kết quả công thức cho biểu đồ cột

Thêm biểu đồ hình tròn

Nội dung sau đây spreadsheets.batchUpdate mã mẫu cho biết cách sử dụng AddChartRequest để tạo biểu đồ hình tròn 3D từ dữ liệu nguồn. Yêu cầu sẽ thực hiện những việc sau để định cấu hình biểu đồ:

  • Đặt tiêu đề biểu đồ.
  • Thêm chú giải vào bên phải biểu đồ.
  • Đặt biểu đồ ở dạng biểu đồ hình tròn 3D. Lưu ý rằng biểu đồ hình tròn 3D không thể có "lỗ vòng" ở chính giữa như cách của biểu đồ hình tròn phẳng.
  • Đặt chuỗi dữ liệu trên biểu đồ làm tổng doanh số bán hàng cho từng số mẫu.
  • Cố định biểu đồ trên ô C3 của trang tính do SHEET_ID chỉ định, có độ lệch 50 pixel theo cả hướng X và Y.

Giao thức yêu cầu được trình bày dưới đây.

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

Yêu cầu sẽ tạo một biểu đồ như sau:

Thêm kết quả công thức vào biểu đồ hình tròn

Ngoài ra, bạn cũng có thể cập nhật giá trị Nếu thuộc tính phụ thuộc vào RIGHT_LEGEND vào LABELED_LEGEND trong yêu cầu, vì vậy giá trị chú thích là được kết nối với các lát cắt của biểu đồ hình tròn.

'legendPosition': 'LABELED_LEGEND',

Yêu cầu được cập nhật sẽ tạo một biểu đồ như sau:

Thêm kết quả công thức vào biểu đồ hình tròn

Thêm biểu đồ dạng đường bằng cách sử dụng nhiều dải ô không liền nhau

Nội dung sau đây spreadsheets.batchUpdate mã mẫu cho biết cách sử dụng AddChartRequest để tạo biểu đồ dạng đường từ dữ liệu nguồn, rồi đặt biểu đồ đó vào trang tính nguồn. Bạn có thể chọn các dải ô không gần nhau để loại trừ các hàng khỏi phần tử ChartSourceRange.

Yêu cầu sẽ thực hiện những việc sau để định cấu hình biểu đồ:

  • Đặt loại biểu đồ dưới dạng biểu đồ dạng đường.
  • Đặt tiêu đề trục x theo chiều ngang.
  • Thiết lập một chuỗi dữ liệu đại diện cho doanh số bán hàng. Nó đặt A1:A3 và A6:A7 làm một domain! và B1:B3 và B6:B7 là một series, trong khi vẫn sử dụng màu và định dạng mặc định. Dải ô được chỉ định bằng hàm A1 trong URL yêu cầu.
  • Cố định biểu đồ trên ô H8 của trang tính do SHEET_ID chỉ định.

Giao thức yêu cầu được trình bày dưới đây.

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

Yêu cầu sẽ tạo một biểu đồ trong một trang tính mới như sau:

Thêm công thức cho biểu đồ dạng đường có dải ô không liên tiếp
kết quả

Xoá biểu đồ

Nội dung sau đây spreadsheets.batchUpdate mã mẫu cho biết cách sử dụng DeleteEmbeddedObjectRequest để xóa biểu đồ do CHART_ID chỉ định.

Giao thức yêu cầu được trình bày dưới đây.

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

Chỉnh sửa thuộc tính của biểu đồ

Nội dung sau đây spreadsheets.batchUpdate mã mẫu cho biết cách sử dụng UpdateChartSpecRequest để chỉnh sửa biểu đồ được tạo trong công thức Thêm biểu đồ cột, sửa đổi dữ liệu, loại và giao diện. Các tập hợp con của thuộc tính biểu đồ không thể là được thay đổi riêng lẻ. Để chỉnh sửa, bạn phải cung cấp toàn bộ trường spec bằng UpdateChartSpecRequest. Về cơ bản, việc chỉnh sửa chỉ dẫn kỹ thuật của biểu đồ yêu cầu thay thế bằng một máy mới.

Yêu cầu sau đây cập nhật biểu đồ ban đầu (được chỉ định bởi CHART_ID):

  • Đặt loại biểu đồ thành BAR.
  • Di chuyển chú thích sang bên phải biểu đồ.
  • Đảo ngược các trục để "Bán hàng" nằm ở trục dưới cùng và "Số mô hình" là trên trục trái.
  • Đặt định dạng tiêu đề trục thành phông chữ 24 điểm, in đậm và in nghiêng.
  • Xoá "W-24" dữ liệu từ biểu đồ (hàng 7 trong nguồn biểu đồ ).

Giao thức yêu cầu được trình bày dưới đây.

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

Sau khi yêu cầu, biểu đồ sẽ xuất hiện như sau:

Chỉnh sửa kết quả công thức nấu ăn trên biểu đồ

Di chuyển hoặc đổi kích thước biểu đồ

Nội dung sau đây spreadsheets.batchUpdate mã mẫu cho biết cách sử dụng UpdateEmbeddedObjectPositionRequest để di chuyển và đổi kích thước biểu đồ. Sau yêu cầu, biểu đồ do CHART_ID chỉ định là:

  • Đã neo vào ô A5 trên trang tính gốc.
  • Bù trừ theo hướng X 100 pixel.
  • Được đổi kích thước thành 1200 x 742 pixel (kích thước mặc định cho biểu đồ là 600 x 371 pixel).

Yêu cầu này chỉ thay đổi những thuộc tính được chỉ định bằng tham số fields. Các thuộc tính khác (chẳng hạn như offsetYPixels) vẫn giữ nguyên giá trị ban đầu.

Giao thức yêu cầu được trình bày dưới đây.

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

Đọc dữ liệu biểu đồ

Nội dung sau đây Mã mẫu spreadsheets.get cho biết cách lấy dữ liệu biểu đồ từ một bảng tính. Tham số truy vấn fields chỉ định rằng chỉ trả về dữ liệu biểu đồ.

Phản hồi cho lệnh gọi phương thức này là một spreadsheet chứa một mảng sheet. Bất kỳ biểu đồ nào có trên một trang tính được thể hiện trong Đối tượng sheet. Nếu một trường phản hồi được đặt thành giá trị mặc định, trường này sẽ bị loại khỏi phản hồi.

Trong ví dụ này, trang tính đầu tiên (SOURCE_SHEET_ID) không có bất kỳ nên một cặp dấu ngoặc nhọn trống sẽ được trả về. Trang tính thứ hai có biểu đồ được tạo bằng cách Thêm biểu đồ cột chứ không phải là biểu đồ nào khác.

Giao thức yêu cầu được trình bày dưới đây.

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