首页 > 解决方案 > 获取 gsheet 组合图表以通过电子邮件发送它们

问题描述

这是我在这里的第一个问题,尽管我之前从很多问题中得到了一些有用的指导。我希望我不会错过这个问题中的任何重要内容。

我目前正在 Google Apps Script 中编写一个脚本,以通过电子邮件从 Google 表格文档中发送一些图表作为图像。我的问题是使用Combined Charts,当我尝试阅读它们并将它们作为图像获取时,我得到一个错误。

我已将代码减少到仍然会抛出我正在谈论的错误的最低限度。

function test_chart_fails(){
  let gdoc_id = "xxxxxxxxxxxx";
  let sheet_name = "test2";
  let document = SpreadsheetApp.openById(gdoc_id);
  let sheet = document.getSheetByName(sheet_name);
  let charts = sheet.getCharts();
  let chart = charts[2];
  let inLineImages = {};
  inLineImages["chartC"] = chart.getAs('image/png');
}

我收到以下错误:

例外:访问 ID 为 xxxxxxxxxxxxxxxxxxxxxxxxxx 的文档时,服务电子表格失败。
test_chart_fails @ AppsScriptFile.gs:305

其中 305 是我的示例代码的最后一行(带有“chart.getAs”的代码)。

现在一些可能相关(或不相关)的附加信息:

有问题的工作表总共有 9 个图表。如果我尝试访问 9 个中的 7 个(仅是组合图表),则会收到此错误。其他图表也可以,我可以将它们放入通过 MailApp 发送的电子邮件中。所有图表都是在 Gsheets 文档中手动创建的。关于构建图表的工作表中的数据,工作表有 103 行和 44 列。工作表中的所有数据都是公式,而不是值。

我已经在此站点和其他出现此错误消息的站点中搜索了现有问题,但我没有找到错误与图表检索相关的问题 - 特别是没有与组合图表相关的实例。一个实例提到了与工作表大小相关的错误,所以我提到了数据大小(行 x 列),但我认为这不是问题 - 因为脚本对于基于相同数据集的非组合图表运行良好。

这是组合图表的预期吗?有没有办法我可以像其他人一样“检索”它们并通过电子邮件发送它们?

标签: google-apps-scriptgoogle-sheetscharts

解决方案


这似乎是一个错误

https://issuetracker.google.com/182701055

SpreadsheetApp.getActive().getSheetByName().getCharts().getAs()返回此错误:“服务电子表格在访问具有 id 的文档时失败”...当折线图具有右垂直轴时

我鼓励你去给这个问题加注星标,让谷歌知道它会影响你并订阅更新。

如果尚未提及,还鼓励您在此处发布任何进一步的复制步骤和解决方法。

您提到的解决方法

如何使用 Google App Script 获得正确的 ComboChart 图像?


推荐阅读