2013-08-19 31 views
0

我在Google應用程序腳本中使用Spreadsheet Services從Internet檢索一些數據,然後用它混亂一點。問題是,當我設置的IMPORTHTML值,如果數據集大於說我沒有訪問權客場進口範圍內的幾行,因此錯誤是在腳本拋出:當通過HTML導入電子表格中的數據時,應用腳本訪問數據導入

例如:

// create tmp sheet and import some data. 
var sheet = this.createTmpSheet(); // custom method to create a temp sheet. 
sheet.getRange('A1').setValue('=ImportHtml("someUrl","table",1)'); 
// at this point usually I can access the range 
var range_to_copy = sheet.getDataRange(); 
// However if the data is more than 10-15 rows I get invalid dimention for range.. 

任何想法如何等待導入的「準備就緒」?沒有一個通用觸發器看起來像是一個合適的選擇。我需要的只是流程控制,以便在導入完成後通知,通常在10秒以內。

回答

0

正如您所指出的,當電子表格重新計算完成時,沒有觸發器會告訴您。 (這是更新單元格中的公式後發生的情況。)

可以通過使用Utilities.sleep(10000);來誘導腳本等待10秒。一般來說,這是糟糕的編程習慣依靠延遲,但它幾乎是你唯一的選擇。

另一種選擇是自己執行html查詢,將數據表解析到數組中,並將其寫入新工作表。如果你對此感興趣,看看html div nesting? using google fetchurl,看看你如何獲得你的信息表。

0

不這樣做。使用urlFetch獲取數據並將其自己寫入電子表格。

相關問題