3

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

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

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

4

2 回答 2

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 功能。

于 2013-03-17T01:01:31.703 回答
0

无需编写脚本即可解决此问题的快速解决方法是简单地制作数据的数组副本。

例如,我创建了一个新选项卡并在 A1 中输入: =ArrayFormula('Form Responses 1'!A1:Z1000)

虽然主表单响应选项卡将插入行并且不能很好地使用公式,但这个新选项卡保持良好和不变,并在添加新数据时自动更新。

于 2017-05-18T21:13:17.680 回答