我希望能夠讓用戶選擇一個月份范圍(即開始月份和結束月份),然后讓我的圖表根據選擇進行更新。在這個例子中,它是2021年的1月至9月。 我已經寫了另一個腳本,執行查詢,根據用戶選擇的范圍選擇一個資料子集。 這很有效,但是當我運行 "更新 "腳本時,我需要在現有的圖表中添加/修改這些范圍。 我有一整頁的圖表,我希望能夠以編程方式用更新的范圍來更新每個圖表。
我終于得到了一個可以修改標題和副標題的腳本,但它并沒有更新資料系列。 有時它做一個,有時做兩個,有時不做。我不明白這一點。 陳述句看起來與我手動操作時記錄的幾乎一樣,并記錄了一個宏,但它沒有作業。這是我第一次嘗試使用googlescript,所以方法、類、語法等都是我的噩夢。 如果有任何幫助,我們將不勝感激。
第1行應該是橫軸 第2行是資料 第3行是資料 第4行是資料
function modify(sheet){
var ss = SpreadsheetApp.getActiveSpreadsheet()。
var sheet = ss.getSheets()[1]; //"訪問第二張表上的資料"。
ss.setActiveSheet(sheet)。
var lastColumn = sheet.getRange('W6'/span>)。 getValue(); //本例中'W6'包含'J',因為本例從A列到J列。
var charts = sheet.getCharts();
var chart = charts[0]; // access the first graph.
var ranges = chart.getRanges();
var range = ranges[0]; // access the first range.
var rangeA1Notation = "A109:" lastColumn "109"; //第109行A列包含標簽 "月年"。
var rangeA1Notation2 = "A110:" lastColumn "110"; //第110行A列包含標簽 "收入",B列至J列包含美元值。
var rangeA1Notation3 = "A111:" lastColumn "111";//第110行A列包含標簽 "Coll Goal",B列至J列有美元值。
var rangeA1Notation4 = "A112:" lastColumn "112";//第110行A列包含標簽 "收集",B列至J列有美元值。
chart = chart.modify()
.removeRange(range)
.setOption("title", "Collections by Month" rangeA1Notation)
.setOption("subtitle", "Jan 2021 - Sep 2021"/span> rangeA1Notation2)
//.addRange(range).setTransposeRowsAndColumns(true).setOption("useFirstColumnAsDomain", true)
//這并不奏效。
.addRange(sheet.getRange(rangeA1Notation)
.addRange(sheet.getRange(rangeA1Notation2)
.addRange(sheet.getRange(rangeA1Notation3)
.addRange(sheet.getRange(rangeA1Notation4))
.build()。
.updateChart(chart)
}
uj5u.com熱心網友回復:
我終于讓它作業了。 我放棄了chart.modify的方法,使用了sheet.removeChart(chart), chart = sheet.newChart() 和sheet.insertChart(chart),它成功了。我仍然想知道chart.modify是否可以作業,或者為什么它沒有作業。
function buildLineChart() {
var spreadsheet = SpreadsheetApp.getActive()。
var ss = SpreadsheetApp.getActiveSpreadsheet() 。
var sheet = ss.getSheets()[1]; //"訪問第二張表的資料"。
var sheet = spreadsheet.getActiveSheet()。
var lastColumn = sheet.getRange('W6'/span>)。 getValue(); //sets the start and end value 。
for columns
var rangeA1Notation = "A109:" lastColumn "109"; //第109行A列包含
標簽 "month year"
var rangeA1Notation2 = "A110:" lastColumn "110"; //第110行A列包含
標簽"Revenue"和資料
var rangeA1Notation3 = "A111:" lastColumn "111"; //第111行A列包含
標簽"Coll Goal"和資料
var rangeA1Notation4 = "A112:" lastColumn "112"; //第112行A列含有
標簽"收集的"和資料
//洗掉并更新第一個圖表。
var charts = sheet.getCharts();
var chart = charts[0]。
sheet.removeChart(chart)。
chart = sheet.newChart()
.asLineChart()
.addRange(spreadsheet.getRange(rangeA1Notation)
.addRange(spreadsheet.getRange(rangeA1Notation2))
.addRange(spreadsheet.getRange(rangeA1Notation3))
.addRange(spreadsheet.getRange(rangeA1Notation4))
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
.setTransposeRowsAndColumns(true)
.setNumHeaders(-1)
.setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.ignore_BOTH)
.setOption('bubble.stroke','#000000')
.setOption('useFirstColumnAsDomain', false)
.setOption('subtitle', 'Jan 2021 - Sept 2021')
.setOption('title', 'Collection by Month')
.setOption('annotations.domain.textStyle.color', '#808080')
.setOption('textStyle.color', '#000000')
.setOption('legend.textStyle.color', '#1a1a1a')
.setOption('subtitleTextStyle.color'/span>, '#999999')
.setOption('titleTextStyle.color', '#757575')
.setOption('annotations.total.textStyle.color', '#808080')
.setOption('hAxis.textStyle.color', '#0000')
.setOption('hAxis.titleTextStyle.color'/span>, '#000000')
.setOption('vAxes.0.textStyle.color'/span>, '#000000')
.setOption('height', 248)
.setOption('width', 896)
.setPosition(6, 1, 10, 10)
.build()。
sheet.insertChart(chart)。
uj5u.com熱心網友回復:
你可能想在Google的Issue Tracker上查看這個問題。
。看來你不能使用modify方法來修改圖表的原因是由于這是Google方面的一個持續問題。我建議你把這個問題列為明星,因為任何更新都會在那里發布。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330551.html
標籤:

