2013-02-27 125 views
2

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

问题是,当电子表格包含由脚本附加的行时,它不会将其视为更改并重新发布。为了获取导入到地图的更新数据,我需要进入并手动重新发布。无论如何,通过Google Apps脚本,我可以制作几行代码来强制重新发布?然后,我可以将其添加到我的“提交表单”脚本或另一个基于每天早上3点运行的脚本。

我查看了Google Apps脚本文档,但未发现任何内容。当在网上寻求帮助时,绝大多数的反应是如何将脚本发布为其他模板。

+0

您的3am脚本是否修改电子表格? – 2013-02-27 14:20:23

+0

没有。提交表单时,通过添加一行数据来修改表单。在凌晨3点,它会读取值并将其复制到另一个电子表格中。上次我手动重新发布它的时间是2/22,从那时起大约增加了20次。它仍然有2/22的最后发布日期,并且地图仍然没有添加新的值。 – user1791058 2013-02-27 17:38:07

+0

您是否手动将CSV上传到ARC GIS,或者您是否只提供一个URL并将其提取并提取数据? – 2013-02-27 23:38:19

回答

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

0

对于不需要编写脚本的问题,快速解决方法是简单地创建数据的数组副本。

例如,我做了一个新的标签,并在A1把这个:= ARRAYFORMULA(“表格回应1”!A1:Z1000)

虽然主要形式答复标签将插入行,而不是玩公式不错这个新标签保持不错并且不断更新,并且在添加新数据时自动更新。

相关问题