Используйте Google Apps Script для создания гиперссылки с использованием текста в ячейке. - PullRequest
0 голосов
/ 16 января 2020

У меня есть лист Google, в котором есть столбец значений, которые являются именами билетов Jira. Я хочу создать скрипт insertJiraLink, который принимает ссылку на ячейку и выводит гиперссылку, в которой текст является именем билета, а ссылка ведет на фактический билет Jira.

Я могу создать ссылку jira достаточно просто. Но я не могу понять, как вернуть гиперссылку с пользовательским текстом.

// returns a full jira hyperlink
function jiraLinks(reference) {
  return "https://jira.fanatics.com/browse/" + reference;
}

// returns text that reads "=HYPERLINK(etc etc)"
function jiraHyperlinks(reference) {
  return '=HYPERLINK("https://jira.fanatics.com/browse/' 
    + reference 
    + '", "' 
    + reference 
    + '")';
}

1 Ответ

1 голос
/ 16 января 2020
  • Вы хотите поместить формулу с помощью пользовательской функции.
  • Вы хотите добиться этого с помощью Google Apps Script.

Если мое понимание верно, как насчет этот ответ? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • К сожалению, пользовательская функция не может задать формулу. Я думаю, что это спецификация стороны Google. Таким образом, в вашем случае необходимо использовать обходной путь.
  • В качестве обходного пути я хотел бы предложить поместить формулу с использованием триггера события OnEdit.
    • В этом случае, когда =jiraHyperlinks(reference) помещается в ячейку, значение ячейки преобразуется в формулу с помощью триггера события OnEdit.

Пример сценария:

function onEdit(e) {
  var value = e.value.split("\"");
  if (/^=jiraHyperlinks\(/.test(value[0])) {
    var reference = value[1];
    e.range.setFormula('=HYPERLINK("https://jira.fanatics.com/browse/' + reference + '", "' + reference + '")');
  }
}

Использование:

  • Чтобы запустить вышеуказанный сценарий, после того, как сценарий скопирован и вставлен в редактор сценариев, и сохраните его, пожалуйста, введите формулу =jiraHyperlinks("sample") в клетку. Таким образом, =jiraHyperlinks("sample text") преобразуется в =HYPERLINK("https://jira.fanatics.com/browse/sample", "sample").

Примечание:

  • Это простой пример сценария для тестирования этого обходного пути. Сценарий может потребоваться изменить в зависимости от ситуации. Пожалуйста, будьте осторожны.

Ссылки:

Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, я приношу свои извинения.

Редактировать:

  • В этом примере сценария формула напрямую извлекается из отредактированного диапазона без использования e.value.

Пример сценария:

function onEdit(e) {
  var range = e.range;
  var value = range.getFormula().split("\"");
  if (/^=jiraHyperlinks\(/.test(value[0])) {
    var reference = value[1];
    range.setFormula('=HYPERLINK("https://jira.fanatics.com/browse/' + reference + '", "' + reference + '")');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...