首页 > 解决方案 > 如何使用 C# 在 Google 电子表格上创建图表?

问题描述

经过努力,我终于创建了能够从/向 Google 电子表格读取、添加、更新和删除单元格的 C# 程序。现在我想从我那里的数据创建一个图表,但我做不到。

我已经围绕这个做了很多研究。我发现这个库存储库包含所有需要的东西(我认为),我发现了几个使用 python 和 javascript 的示例,但由于某种原因,我无法将它放在 C# 中。

有人做过吗?

标签: c#google-sheets-api

解决方案


回答:

为了创建图表并将其添加到 Google 表格,batchUpdate需要向包含图表信息的 API 发出请求。

撞倒:

您需要做的第一件事是构建您的请求正文,指定您需要的图表的所有相关部分。这包括图表的类型(柱形图或饼图)、轴、数据源、图表的位置等。完整的信息可以在图表参考中找到。

一旦构建了请求对象,就batchUpdate可以通过构建一个BatchUpdateRequest包含之前构建的所有信息的 API 来向 API 发出请求。

构建请求:

Request 是一个 List 对象,您需要在添加到BatchUpdateSpreadsheetRequest对象之前构建它:

var addChartRequest = new AddChartRequest();
addChartRequest.ChartData = // Your data
addChartRequest.ChartSourceRange = // Your range
addChartRequest.ChartSpec = // Your spec
// I have included the Class References for all these below, check them out
// and add the structure you need

BatchUpdateSpreadsheetRequest chartRequest = new BatchUpdateSpreadsheetRequest();
chartRequest.Requests = new List<Request>();
chartRequest.Requests.Add(new Request
{
  // Build your List Request here following the structure for column or pie charts
});

请求结构饼图请求结构类似,但需要的参数略有不同。

进行 API 调用:

在构建了请求本身之后,batchUpdate需要调用该方法:

var ssID = "<your-spreadsheet-id>"
var batchUpdateReq = service.Spreadsheets.BatchUpdate(chartRequest, ssID)
batchUpdateRequest.Execute();

参考:


推荐阅读