【问题标题】:Grabbing a Chart as image via JS script and Google Sheets API?通过 JS 脚本和 Google Sheets API 抓取图表作为图像?
【发布时间】:2020-05-15 16:46:34
【问题描述】:

我正在创建一个 Discord Bot,它将从 Google 表格中获取指定图表并将图表发送到服务器。手头的表格一次只能有一个图表,所以我能够找到正确的chartId,如下所示:

sheets.spreadsheets.get({
    spreadsheetId: 'MYSPREADSHEETID'
}, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    var id = res.data.sheets[0].charts[0].chartId;
});

但是,我不知道如何将相应的图表导出为图像,或找到图表的唯一 URL,甚至无法使用现有数据重新创建图表。我正在使用 discord.js 和 Google Sheets API v4。

【问题讨论】:

  • 不幸的是,在发表此评论时,无法将图表作为图像获取或使用 Sheets API 获取其 url。但是,有一些解决方法。第一个在documentation 将返回带有图表的工作表对象。您还可以将 UI 中的图表移动到自己的工作表中,以便为其分配特定的工作表。
  • 第二个是将图表发布为specified here,这样您就可以获取链接或其嵌入。您还可以使用 Apps 脚本将其部署为 Web 应用程序,并从那里获取其 Blob 对象以生成图像,如 Stack Overflow answer 所示。 让我知道这些解决方法是否适合您的情况,或者您是否会寻找其他方法
  • @MateoRandwolf 非常感谢!将图表发布为图像并使用该链接对我有用。

标签: javascript google-sheets discord discord.js google-sheets-api


【解决方案1】:

遗憾的是,目前无法将图表检索为图像或使用 Sheets API 获取其特定 URL。在这里,当我们遇到尝试在电子表格中检索图表图像的问题时,我提出了三种解决方法。

解决方法 1

如果您的主要目的是获取图表数据然后在其他地方使用它或使用它为其他 Google 应用程序创建数据 Blob,您可以使用 API 方法 GET 仅请求所需的字段(在我们的情况下,图表对象)如this example of the documentation所示。

解决方法 2

如果您需要通过简单的链接轻松访问此图表图像,您可以在these steps shown in the documentation 之后发布您的图表。这可以为您的网站生成链接嵌入,您可以轻松地共享和使用。

解决方法 3

您可以使用 Apps 脚本创建 Web 应用程序,并使用第一个解决方法中的 API 方法从图表对象生成一个 Blob,并将其作为图像插入到另一个工作表或 HTML 页面中。在this Stack Overflow answer 中,您可以看到此变通方法的实施示例。

我希望这对您有所帮助。让我知道您是否需要其他任何内容或者您是否不理解某些内容。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多