如何更新嵌入式堆积柱形图并保留图表设置?

时间:2013-09-30 17:27:00

标签: google-apps-script google-visualization

我在嵌入式堆积柱形图中使用了两个电子表格范围。我需要在更新电子表格时编辑图表范围。 this article中提到的技术大多有效,但我的图表设置“垂直组合范围”和“将第1行用作标题”将被删除(导致图表出错)。

我查看了setOptions的文档,但没有发现任何有用或明显的内容。如何更新我的图表并保留设置?

我的代码:

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dashboard = ss.getSheetByName("dashboard");
  var data = ss.getSheetByName("data");
  var charts = dashboard.getCharts();
  var builder = charts[0].modify().asColumnChart();
  var ranges = builder.getRanges();

  //remove ranges that might have changed
  for(var i = 0; i < ranges.length; i++)
      builder.removeRange(ranges[i]);

  //add the range used for headers
  builder.addRange(
      data.getRange(1,1,1,data.getLastColumn()));

  //add the range used for data
  builder.addRange(
      data.getRange(data.getLastRow()-10, 1, 10, data.getLastColumn()));

  dashboard.updateChart(builder.build());  

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我在这篇文章中找到了答案:

Google Apps Script Chart Use row 1 as headers

简而言之,如果第一行的格式是纯文本,那么它将用作图表的标题。

为了在您的示例中执行此操作,请添加以下代码行:

data.getRange(1,1,1,data.getLastColumn()).setNumberFormat('@STRING@');