按照說明here並集成谷歌電子表格與bigQuery。我的查詢從過去一小時中提取數據,因此保持電子表格更新非常重要。自動更新來自bigquery的數據的谷歌電子表格
有沒有辦法讓工作表自動運行腳本並在刷新頁面時更新數據?現在,我需要點擊幾下才能做到這一點。
按照說明here並集成谷歌電子表格與bigQuery。我的查詢從過去一小時中提取數據,因此保持電子表格更新非常重要。自動更新來自bigquery的數據的谷歌電子表格
有沒有辦法讓工作表自動運行腳本並在刷新頁面時更新數據?現在,我需要點擊幾下才能做到這一點。
除@Sandy Good的回答。
您需要使用onOpen(e)
,它在用戶打開具有編輯權限的電子表格,文檔或表單時運行。
function onOpen() {
// Add a custom menu to the spreadsheet.
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('First item', 'menuItem1')
.addToUi();
}
由於腳本需要授權,您收到授權錯誤。 Apps腳本需要用戶授權才能訪問數據。
如果腳本使用可訪問私人數據的服務,您將看到一個授權對話框。
您可以通過以下步驟撤消腳本的訪問權限:
訪問權限頁爲您的谷歌帳戶。 (要導航到此頁面,請訪問Google.com,然後點擊屏幕右上角的帳戶圖片,然後點擊帳戶,然後點擊帳戶權限部分的安全,然後點擊查看全部。)
單擊要撤銷其授權的腳本的名稱,然後單擊右側的撤銷訪問。
有關授權的更多信息,請按照谷歌官方文檔:https://developers.google.com/apps-script/add-ons/lifecycle
由於大量查詢已經集成到谷歌電子表格, 這裏是你有你的腳本做什麼:使用Datasets: update
與添加的路徑
發送HTTP請求參數datasetId
和projectId
。
樣品HTTP請求:
PUT https://www.googleapis.com/bigquery/v2/projects/projectId/datasets/datasetId
但是,請注意以下的使用Datasets: update
時:
範圍
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/cloud-platform
2 。要自動更新您的數據,您可以在腳本內部設置一個Trigger函數,該函數根據您的偏好執行這些保留的函數名稱:
onOpen(e)
當用戶打開他或她有權編輯的電子表格,文檔或表單時運行。onEdit(e)
當用戶更改電子表格中的值時運行。onInstall(e)
當用戶安裝加載項時運行。doGet(e)
當用戶訪問Web應用程序或程序向Web應用程序發送HTTP GET
請求時運行。doPost(e)
當程序發送HTTP POST
請求到Web應用程序時運行。此外,還應該注意,因爲簡單的觸發器會自動觸發,所以它們受到幾個限制,您可以在文檔中進行操作。
刷新頁面觸發「的OnOpen()」簡單的觸發,或已安裝的「開放式」觸發。所以,你需要一個「On Open」觸發器,無論是簡單的還是已安裝的。 [Apps腳本文檔 - 觸發器](https://developers.google.com/apps-script/guides/triggers/installable) –
Thx。我嘗試過,但是如果我刷新頁面,會導致身份驗證錯誤。但是如果我按照手動步驟操作,數據會刷新。 – arun