Получить URL-адрес изображения через скрипт в Google Sheets - этот код все еще работает? - PullRequest
0 голосов
/ 04 февраля 2019

Я использую Google Sheets.

Ячейка A1:

=image("address.jpg")

Это помещает изображение в ячейку.Чтобы получить URL из Stack Overflow, выдает этот ответ .

Я создал скрипт, и Google распознал его в автозаполнении.Я получаю ошибку:

TypeError: Невозможно вызвать метод "match" из null.(строка 10).

Я запустил регулярное выражение через средство проверки, и оно действительно получает то, что я ищу, то есть адрес, но, похоже, ошибка указывает на то, что он возвращается ни с чем.

Это все еще работает?Google что-то изменил?

Мой обходной путь - создать два листа и иметь § = изображение на одном листе, а на втором листе я удаляю § и использую стандартную функцию Google.

Связанное решение намного лучше, и я хотел бы реализовать это, если бы мог.Я не могу оставить комментарий на странице исходного решения, так как у меня нет очков репутации.

1 Ответ

0 голосов
/ 05 февраля 2019

В вашей ситуации в качестве аргумента указывается "ноль".Потому что формула не может быть получена напрямую с помощью =getImageUrl(A1).При этом возникает ошибка Cannot call method "match" of null..Формула может быть получена с помощью getFormula().Это также упоминается в ответе Эрика Коледы.Так, например, скрипт можно изменить следующим образом.

Модифицированный скрипт:

function getImageUrl(range) {
  var formula = SpreadsheetApp.getActiveSheet().getRange(range).getFormula(); // Added
  var regex = /=image\("(.*)"/i;
  var matches = formula.match(regex);
  return matches ? matches[1] : null;
}

Примечание:

  • Если в "A1 введено =image("URL")", когда вы используете это как =getImageUrl("A1"). Пожалуйста, заключите A1 в двойные кавычки. Таким образом, строка "A1" передается функции и используется в качестве диапазона.

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...