删除Google电子表格中包含无效坐标或范围的图表

时间:2014-12-31 22:32:47

标签: javascript charts google-apps-script google-sheets

我已经在电子表格中自动生成了一个图表,并且每次完成更新时都会以编程方式删除它,并将新图表放在其位置。问题是,如果首先删除它引用的数据,我会收到错误:"范围的坐标或尺寸无效。"

此错误指向删除图表功能的第一行:

var charts = convertSheet.getCharts();
  for (var i in charts) {
    convertSheet.removeChart(charts[i]);
  }

显然,如果图表有错误,Google Apps脚本甚至无法访问它,即使它只是删除它。到目前为止,我还没有找到解决这个问题的可行方案。我甚至尝试在图表指向的范围内插入新数据,然后尝试删除它,因此它具有良好的数据,但没有骰子。不幸的是,它会停止整个脚本,我该如何处理呢?

1 个答案:

答案 0 :(得分:4)

我仍然希望有人有更好的答案,但就目前而言,我有一个有点工作的系统:

  try {
    var charts = convertSheet.getCharts();
    for (var i in charts) {
      convertSheet.removeChart(charts[i]);
    }
  }
  catch(err) {
    //Ignore dat error, bro!
  }

基本上,它不是仅因为无法删除图形而停止整个脚本,而是将断开的图形留在那里并继续使用脚本。这不是理想的,但错误是一个非常罕见的用例,所以一个cludgy修复是可以接受的。

这个解决方案的问题在于它在页面上留下了一个很难看的破坏图形,并且所有未来清除所有图形的尝试都会失败,因为破坏的图形仍然存在,直到有人手动删除图形。