2017-06-11 49 views
0

我在電子表格中有一個數據,在另一張表上有一個基於這些數據的圖表。該圖表具有左右兩個垂直軸。軸的最小值和最大值被設置爲自動,這意味着根據輸入數據自動調整軸的比例。如何獲取電子表格中對象的圖表選項? (如`titleTextStyle`或`vAxes`)

我需要通過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

任何建議,如何讓這些更復雜的選擇嗎?

回答

2

hAxisvAxis的參數是JSON。當它從中檢索參數時,它使用一個鍵。例如,爲了檢索hAxiscolor,fontSizefontName,titleTextStyle,其使用如下。

樣品:

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是修改之前的條件。

我認爲這是一個錯誤。最近,圖表生成器已更新,因此可能會保留一些錯誤。我不知道這是否也出現在其他用戶的環境下。

如果我誤解了你的問題,我很抱歉。

+0

謝謝。這正是我的意思。我如何檢索'vAxes'(複數)應該返回**左右兩個垂直軸屬性(當它工作時)? (根據上面鏈接的文檔,「該屬性可以是對象或數組」) –

+0

@ B.No當設置左右標題時,它使用''。setOption('vAxes',[{title:「left title」},{title:「right title」}])''。所以當他們被檢索到時,我認爲它使用''chart.getOptions()。get('vAxes [0] .title')''和''chart.getOptions()。get('vAxes [1] .title 「)''。但是現在我得到了''null''。我昨天說的錯誤還沒有被修改。所以它被認爲這可能也是一個錯誤。但我不知道。對不起。 – Tanaike

+0

謝謝。我不確定如何引用數組/對象選項。我會向Google報告這個錯誤。 –

相關問題