【问题标题】:Using built-in functions in custom functions在自定义函数中使用内置函数
【发布时间】:2019-10-17 14:10:19
【问题描述】:

我在带有 google-sheets 的页面上的值。

目前,我正在使用=IMPORTHTML($A$1; "table" ; 2),但我想通过索引使用自定义函数进行迭代。

如何在自定义函数/脚本编辑器中调用 IMPORTHTML 函数才能通过所有索引运行?

var current =IMPORTHTML(URL;  "table" ; i)

结果在

参考错误:“IMPORTHTML”

.

【问题讨论】:

  • 嘿,我刚刚发布了一个答案,有两种方法可以做到这一点。让我知道这是否适合你。干杯

标签: google-apps-script web-scraping google-sheets google-sheets-formula


【解决方案1】:

可能不是您期望的答案,但是:

=IFERROR(IFERROR(IFERROR(
 IMPORTHTML(A1; "table" ; 2); 
 IMPORTHTML(A1; "table" ; 3)); 
 IMPORTHTML(A1; "table" ; 4));
 IMPORTHTML(A1; "table" ; 5))

等等……

或在数组中:

={IMPORTHTML(A1; "table" ; 2);
  IMPORTHTML(A1; "table" ; 3);
  IMPORTHTML(A1; "table" ; 4);
  IMPORTHTML(A1; "table" ; 5))}

等等……

【讨论】:

  • 感谢您的回答...但我想通过结果搜索特定条目...但根据 URL 可能会更改索引...
【解决方案2】:

目前,不支持从 Google Apps 脚本调用表格原生函数。

但是,您有以下选择:

  1. 使用setFormula()。您可以使用以下代码将公式设置到工作表并将结果从中提取回脚本。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange("A20");

var formula = Utilities.formatString('=IMPORTHTML("%s", "%s", "%s")', URL, "table", i);
cell.setFormula(formula);
var value = cell.getValue();
  1. 使用URL Fetch Service。您必须执行代码来提取您想要的信息(您可以使用RegExXML Service)。这将需要更多的努力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 2013-06-14
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多