Использование встроенных функций в пользовательских функциях - PullRequest
1 голос
/ 17 октября 2019

Я для значения на странице с google-листов.

В настоящее время я использую =IMPORTHTML($A$1; "table" ; 2), но я бы хотел перебрать пользовательскую функцию по индексам.

Какнужно ли вызывать функцию IMPORTHTML в пользовательской функции / редакторе сценариев для запуска по всем индексам?

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

В результате возникает

ReferenceError: "IMPORTHTML"

.

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

В настоящее время вызов собственных функций Sheets из Google Apps Script не поддерживается.

Однако у вас есть следующие опции:

  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();
Использование службы URL Fetch . Вам нужно будет реализовать код для извлечения необходимой информации (вы можете использовать RegEx или XML Service ). Это займет значительно больше усилий.
0 голосов
/ 17 октября 2019

вероятно, не тот ответ, который вы ожидаете, но:

=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))}

и т. Д.

...