我正在 Google 电子表格中处理我的电子表格。 You can visit it here 。
如果您访问该页面,您将在当前工作表(图形输入)中看到 2 个图表。第一个是嵌入的,最后一个或下面的一个是“带注释的时间线”
。现在,我有了一个脚本(通过谷歌搜索),可以在编辑电子表格的行时自动更新图表。通过添加并提交输入到 this form您可以向电子表格添加一些数据/行。输入将自动添加到电子表格中。
现在,当我触发或运行脚本(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;
}
现在,我应该做什么或应该进行哪些更改才能使两个图表正常工作?
谢谢, 奥马尔·谢里夫
最佳答案
不幸的是,嵌入图表功能目前仅适用于所有可用图表的未记录子集,其中可能不包括时间线图表类型。您可以在我们的 issue tracker 上提交功能请求,以更好地记录此功能。 .
关于google-visualization - 如何通过谷歌电子表格应用程序自定义代码更新或管理带注释的时间线图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11304602/