這裏的目標是在電子表格加載時以編程方式從預先存在的數據創建圖表。使用Apps創建圖表腳本無法插入到電子表格
的documentation for the EmbeddedChart class有兩個例子,既修改現有圖表,並且,我需要,創造一個新問題:
function newChart(range, sheet){
var sheet = SpreadsheetApp.getActiveSheet();
var chartBuilder = sheet.newChart();
chartBuilder.addRange(range)
.setChartType(Charts.ChartType.Line)
.setOption('title', 'My Line Chart!');
sheet.insertChart(chartBuilder.build());
}
例如谷歌丟失:.setPosition()
我已經試過落實此功能如下:
function makeChart(sheet, range) {
Logger.log('MAKING CHART');
var chart = sheet.newChart();
chart.addRange(range)
.setChartType(Charts.ChartType.BAR)
.setOption('title','I love Google Apps Script');
sheet.insertChart(chart.build());
}
其中表和範圍定義爲:
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("C1:D16");
makeChart()
從onOpen()
調用,這我可以看到正被執行。儘管如此,圖表從不出現在電子表格中。
我注意到在調用.build()
方法後沒有記錄任何東西,但是關於此方法的文檔很少,除了聲明它必須在製作圖表之後調用。
編輯:該腳本失敗,因爲.insertChart()
需要一個EmbeddedChart
對象,但被賦予一個EmbeddedChartBuilder
。根據文檔,.build()
方法應該返回一個EmbeddedChart。但事實並非如此。
感謝您的輸入伴侶。我已經嘗試在插入之前調用'.build()',並添加一個'.setPosition()'值 - 仍然沒有運氣。 我想知道是否與使用的數據有關,它是相當簡單的數字,但我不會這麼想。 – kyranjamie
@kyranjamie您是使用Google電子表格還是舊版Google?我仍然在與舊版本合作,因爲腳本和新版本存在一些嚴重問題,可能會導致您的問題? –