我正在谷歌电子表格上处理我的电子表格。你可以在这里参观。
如果您访问该页面,您将在当前工作表中看到 2 个图表(图表输入)。第一个是嵌入的,最后一个或以下是"Annotated Time Line"
. 现在,我有一个脚本(通过谷歌搜索),可以在编辑电子表格的行时自动更新图表。通过向此表单添加和提交输入,您可以向电子表格添加一些数据/行。输入将自动添加到电子表格中。
现在,当我触发或运行脚本(onEdit
函数)时,只有第一个或顶部图表正在更新。但是第二个或以下的一个没有更新。
这是代码:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
var c = s.getCharts();
for (var i in c) {
var ch = c[i];
var ranges = ch.getRanges();
var mod = ch.modify();
for (var j in ranges) {
var range = ranges[j];
mod.removeRange(range);
var newRange = expandRange_(range);
mod.addRange(newRange);
}
s.updateChart(mod.build());
}
}
function rangeShouldExpand_(range) {
var s = range.getSheet();
var numCol = range.getNumColumns()
var values = s.getSheetValues(range.getLastRow(), range.getColumn(), 2, numCol);
for (var i = 0; i < numCol; i++) {
if (!values[0][i] && !values[1][i] || !!values[0][i] && !!values[1][i]) {
continue;
} else {
return false;
}
}
return true;
}
function expandRange_(range) {
var s = range.getSheet()
var startRow = range.getRow();
var startCol = range.getColumn();
var numRows = range.getNumRows();
var numCols = range.getNumColumns();
while (rangeShouldExpand_(range)) {
numRows++;
range = s.getRange(startRow, startCol, numRows, numCols);
}
return range;
}
现在,我应该怎么做或做出什么改变才能让这两个图表正常工作?
谢谢,奥马尔谢里夫