2013-02-27 87 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)

雖然主要形式答覆標籤將插入行,而不是玩公式不錯這個新標籤保持不錯並且不斷更新,並且在添加新數據時自動更新。

相關問題