0

按照說明here並集成谷歌電子表格與bigQuery。我的查詢從過去一小時中提取數據,因此保持電子表格更新非常重要。自動更新來自bigquery的數據的谷歌電子表格

有沒有辦法讓工作表自動運行腳本並在刷新頁面時更新數據?現在,我需要點擊幾下才能做到這一點。

+2

刷新頁面觸發「的OnOpen()」簡單的觸發,或已安裝的「開放式」觸發。所以,你需要一個「On Open」觸發器,無論是簡單的還是已安裝的。 [Apps腳本文檔 - 觸發器](https://developers.google.com/apps-script/guides/triggers/installable) –

+0

Thx。我嘗試過,但是如果我刷新頁面,會導致身份驗證錯誤。但是如果我按照手動步驟操作,數據會刷新。 – arun

回答

1

除@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

0

由於大量查詢已經集成到谷歌電子表格, 這裏是你有你的腳本做什麼:使用Datasets: update與添加的路徑

發送HTTP請求參數datasetIdprojectId

樣品HTTP請求:

PUT https://www.googleapis.com/bigquery/v2/projects/projectId/datasets/datasetId 

但是,請注意以下的使用Datasets: update時:

  • 它要求授權爲Authenticating requests to the Google BigQuery API
  • 指定的訪問列表完全覆蓋聲明現有的訪問列表。如果指定一個空的訪問列表,你將取消獲得大家除了自己
  • 這個請求需要授權使用以下範圍的至少一個:

範圍

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應用程序時運行。

此外,還應該注意,因爲簡單的觸發器會自動觸發,所以它們受到幾個限制,您可以在文檔中進行操作。

相關問題