通过HTML导入在电子表格中加载数据时,应用程序脚本访问数据

时间:2013-08-19 13:48:14

标签: google-apps-script

我正在使用Google应用脚本中的电子表格服务从互联网上检索一些数据,然后用它来搞砸。问题是当我设置ImportHtml值时,如果数据集大于几行,我没有立即访问导入的范围,因此在脚本中抛出错误:

示例:

// 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秒。

2 个答案:

答案 0 :(得分:0)

正如您所指出的那样,没有触发器会在电子表格重新计算完成时告诉您。 (这是在更新单元格中的公式后发生的事情。)

您可以使用Utilities.sleep(10000);诱导您的脚本等待10秒。一般来说,依赖延迟是不好的编程习惯,但这几乎是你唯一的选择。

另一种选择是自己执行html查询,将数据表解析为数组,然后将其写入新工作表。如果您对此感兴趣,请查看html div nesting? using google fetchurl,了解如何获取您的信息表。

答案 1 :(得分:0)

不要这样做。使用urlFetch获取数据并将其自己写入电子表格。