0

我正在使用 Google 应用程序脚本中的电子表格服务从 Internet 检索一些数据,然后对其进行一些处理。问题是当我设置 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 秒内。

4

2 回答 2

0

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

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

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

于 2013-08-27T04:18:54.723 回答
0

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

于 2013-08-27T13:15:41.530 回答