google-visualization - 如何通过谷歌电子表格应用程序自定义代码更新或管理带注释的时间线图表?

标签 google-visualization google-apps-script google-sheets google-sheets-api

我正在 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/

相关文章:

javascript - 在函数结束时检查执行错误的代码?

javascript - 从 google apps 脚本创建 html 页面

javascript - 有什么方法可以避免谷歌可视化图表图例中的分页并在单个页面中以两行显示所有行?

javascript - 如何在条形图上放置标签 google.charts.Bar()

javascript - 在页面上创建多个 google.visualization 图表

regex - 拆分字符串并获取最后一个元素

google-sheets - 是否有任何 API 可用于从谷歌电子表格中检索单元格中的图像?

javascript - 使用 ChartEditor 调整谷歌可视化的大小

javascript - google Apps 脚本中的 createFile() 无法正常运行

jquery - IE跨域jSONP到google apps脚本内容服务