Nag*_*m92 4 triggers google-sheets google-apps-script google-sheets-charts
我创建了下面的脚本,该脚本在编辑单元格 J1 时从 onedit 函数运行。该图表存在于标题为“每日数据”的表格中。它将使用的数据来自名为“长期数据”的表格。
我使用以下链接作为指导:https : //developers.google.com/apps-script/reference/spreadsheet/embedded-chart。
感谢您的任何帮助。
function onEdit(e) {
//This IF statement ensures it will only run when cell J1 is edited:
if (
e.source.getSheetName() == "Daily Data" &&
e.range.columnStart == 10 &&
e.range.columnEnd == 10 &&
e.range.rowStart >= 1 &&
e.range.rowEnd <= 1
) {
var spreadsheet = SpreadsheetApp.getActive();
var daily_data = spreadsheet.getSheetByName("Daily Data");
var LTD_data = spreadsheet.getSheetByName("Long Term Data");
//ABOVE HAS BEEN TESTED AND RUNS SUCCESFULLY. THE BELOW DOES NOT...
var chart = daily_data.getCharts()[0];
var range = LTD_data.getRange("B2:J3")
chart = chart.modify()
.addRange(range)
.build();
spreadsheet.updateChart(chart);
}
}
;
Run Code Online (Sandbox Code Playgroud)
Daily Data使用 Google Apps 脚本的表格中的图表。如果我的理解是正确的,下面的修改如何?
updateChart()是 Class Sheet 的方法。但是在您的脚本中,updateChart()用于类电子表格。这样,脚本就不起作用了。当上述点反映到您的脚本时,它变成如下。
在此模式中,范围被添加到现有范围。
spreadsheet.updateChart(chart);
Run Code Online (Sandbox Code Playgroud)
到:
daily_data.updateChart(chart);
Run Code Online (Sandbox Code Playgroud)
在此模式中,删除现有范围并添加新范围。
var chart = daily_data.getCharts()[0];
var range = LTD_data.getRange("B2:J3")
chart = chart.modify()
.addRange(range)
.build();
spreadsheet.updateChart(chart);
Run Code Online (Sandbox Code Playgroud)
到:
var chart = daily_data.getCharts()[0];
var range = LTD_data.getRange("B2:J3")
var ranges = chart.getRanges();
chart = chart.modify();
ranges.forEach(function(range) {chart.removeRange(range)});
var modifiedChart = chart.addRange(range).build();
daily_data.updateChart(modifiedChart);
Run Code Online (Sandbox Code Playgroud)
如果我误解了您的问题并且这不是您想要的结果,我深表歉意。
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |