如何在电子表格中获取作为对象的图表选项? (比如`titleTextStyle`或`vAxes`)

时间:2017-06-11 01:07:02

标签: google-apps-script google-sheets

我在电子表格中有数据,在单独的工作表上有基于该数据的图表。该图表具有左右垂直轴。轴的最小值和最大值设置为自动,这意味着轴的比例会根据输入数据自动调整。

我需要使用apps-script获取轴的实际最小/最大值。

似乎我需要关注this并使用列出的here选项。对于像title这样的简单选项,它可以使用,但不适用于像titleTextStyle这样的对象,或者更适用于vAxes的对象。

以下是当前代码:



  var ss = SpreadsheetApp.openById('some ID'); 
  var chartSheet = ss.getSheetByName('some name');  
  var chart = chartSheet.getCharts()[0];
  var optionsTitle = chart.getOptions().get('title'); // works fine, returns a string
  var optionsTTS = chart.getOptions().get('titleTextStyle{}'); // without {} give an access denies error, with {} returns null
  var optionsA = chart.getOptions().get('vAxes{}'); // without {} give an access denies error, with {} returns null




有关如何获得这些更复杂选项的任何建议吗?

1 个答案:

答案 0 :(得分:2)

vAxiscolor的参数是JSON。当它从中检索参数时,它使用一个键。例如,为了检索fontSize fontName的{​​{1}},titleTextStylehAxis,它使用如下。

示例:

var hAxis_titleTextStyle_color = chart.getOptions().get('hAxis.titleTextStyle.color')
var hAxis_titleTextStyle_fontSize = chart.getOptions().get('hAxis.titleTextStyle.fontSize')
var hAxis_titleTextStyle_fontName = chart.getOptions().get('hAxis.titleTextStyle.fontName')

注意:

上面也可以检索vAxis。但现在无法做到。返回null。我刚刚确认了。我试过这个如下。

  1. 我使用GAS创建了一个新图表,并通过上面的脚本检索了vAxis。它工作正常。
  2. 我在电子表格上手动创建了一个新图表,并检索了vAxis,它不起作用。返回null
  3. 当我在GAS手动创建的图表上修改vAxis时,在电子表格中,图表的vAxis不会更改。
  4. 对于在3处创建的图表,当GAS检索到vAxis时,可以检索修改后的参数。但是,电子表格图表的vAxis是修改之前的条件。
  5. 我认为这是一个错误。最近,图表构建器已更新,因此可能会留下一些错误。我不知道这是否也是在其他用户的环境下发生的。

    如果我误解了你的问题,我很抱歉。