【问题标题】:Error "Cannot find method insertChart(EmbeddedChartBuilder)" when using Apps Script to create Embedded Charts使用 Apps 脚本创建嵌入式图表时出现错误“找不到方法 insertChart(EmbeddedChartBuilder)”
【发布时间】:2019-05-03 05:41:35
【问题描述】:

我想从电子表格“dataSheet”(仅供查看与我共享)中获取数据以创建图表并输出到我自己的电子表格“表格”。

我使用 Apps Script 创建一个 embeddedChart 时遇到了这个错误:Cannot find method insertChart(EmbeddedChartBuilder)。

我已密切关注 Google 的指南 https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart,但无法解决错误。

我已经逐步调试并意识到错误发生在 .insertChart(最后一行代码)。

var chartBuilder = sheet.newChart();
chartBuilder.addRange(dataSheet.getRange('R'+earliestRowUsed + 'C1:R'+latestRowUsed + 'C1'))
    .setChartType(Charts.ChartType.COLUMN)  
    .setPosition(5,5,0,0);

//collect data from dataSheet to add to Range.    
for (indicator = 0; indicator < indicatorP.length; indicator++) {  
    indicatorIndex = indicatorList[0].indexOf(indicatorP[indicator]);
    chartBuilder.addRange(dataSheet.getRange('R'+earliestRowUsed + 'C'+(dataCol + indicatorIndex) +':'+ 'R'+latestRowUsed + 'C'+(dataCol + indicatorIndex)));
  }

chartBuilder.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS); //join columns to create a table
chartBuilder.build();
sheet.insertChart(chartBuilder); //error takes place here.

我愿意使用ChartsEmbeddedCharts 为我的目的创建图表(即从共享的仅供查看的工作表中获取数据以创建图表并嵌入到我的工作表中)。

为了使用图表和表格,我找到了这个 Google 指南 https://developers.google.com/chart/interactive/docs/spreadsheets#embedding-achart-in-a-spreadsheet

但是,该指南仅显示了创建图表的手动过程,而不是使用 Apps 脚本。如果有人知道如何,将感谢您的分享,因为我无法在网上找到任何东西。

谢谢。

【问题讨论】:

  • 您没有保存.build() 的输出。试试sheet.insertChart(chartBuilder.build());
  • 感谢@Diego。在发布之前我也尝试过你的方法,但这不是原因。我们的两种写作方法都可以用来制作图表。
  • 你确定吗?我重新创建了您的代码并稍作修改(并非您的所有值指示值都已定义,因此我对一些范围进行了硬编码),并且我能够重现并使用 sheet.insertChart(chartBuilder.build()); 解决您的问题。
  • 很抱歉你是对的。您的方法适合新图表,而我的方法是修改现有图表developers.google.com/apps-script/reference/spreadsheet/…。我认为我的问题是由于其他原因。但是,我没有进一步检查,而是进行了绕行。再次感谢。

标签: google-apps-script google-sheets google-visualization


【解决方案1】:

我认为您的问题是“仅查看”权限。可以肯定的是,如果您想以编程方式从工作表中获取数据并在其他地方使用它,您需要请求编辑权限。

【讨论】:

  • 绝对是个问题
  • 感谢您的回复@RobertLCrocker。我不确定“仅查看”是否是原因。我的解决方法是在创建图表之前先将数据输出到工作表。
【解决方案2】:

在尝试了几个场景后,我发现问题是由于 EmbeddedCharts 无法使用来自另一个工作表文件(仅查看或拥有)的数据。使用文件 EmbeddedCharts 中任何工作表中的数据将在作品中创建。

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2018-03-29
    • 2021-05-29
    • 1970-01-01
    相关资源
    最近更新 更多