脚本强制重新发布谷歌电子表格

时间:2013-02-27 14:03:42

标签: google-apps-script google-sheets

我创建了一个将数据推送到Google电子表格的表单。数据是纬度,经度,位置和其他识别数据。然后,电子表格将作为.CSV文件发布并导入ARC GIS,以显示在交互式地图上。它完全按照我的意愿工作,并在每次更改后将其设置为重新发布。

问题在于,当电子表格中的行附加了行时,它不会将其视为更改和重新发布。为了将更新的数据导入到地图中,我需要进入并手动重新发布。无论如何,通过Google Apps脚本我可以制作几行代码来强制重新发布吗?然后我可以将其添加到我所拥有的“on form submit”脚本或另一个基于每天凌晨3点运行的脚本。

我查看了Google Apps脚本文档但没有找到任何内容。在网上搜索帮助时,绝大多数回复都是关于如何将脚本发布为其他模板的。

2 个答案:

答案 0 :(得分:1)

在通过菜单条目或基于时间的触发器执行以下功能后,我的测试表被重新发布。

function ChangeIt() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var t = new Date()
  var x = 'upd: ' + t
  var range = sheet.getRange('a3')
  range.setValue(x)
}

如果我在你的位置,我会在工作表的末尾添加一个额外的列,其中包含一些良好的常量数据,脚本可以更改,而不会影响消耗数据的系统。如果不能选择额外的列,请尝试修改我的示例以读入当前值,更改它,然后立即将其更改回来。

另外,当表单提交添加新行时,我会看到电子表格onEdit()触发器是否会触发。如果是这样,请将GAS功能绑定到它以强制重新发布。如果没有,请设置定时触发器以执行GAS功能。

答案 1 :(得分:0)

这个不需要编写脚本的问题的快速解决方法是简单地制作数据的数组副本。

例如,我制作了一个新的标签,在A1中放了这个:= ArrayFormula('Form Responses 1'!A1:Z1000)

虽然主要的表单响应选项卡将插入行而不能与公式一起使用,但新的选项卡保持良好且不变,并在添加新数据时自动更新。