Пользовательская функция электронной таблицы Google Возврат гиперссылки или существующей формулы
В настоящее время я вхожу в гиперссылки в Google Spreadsheet в форме:
=HYPERLINK("http://jira.com/browse/ISSUE-12345","ISSUE-12345")
Я дублирую "ISSUE-12345" каждый раз. Я хотел бы создать функцию JIRA (12345), которая дает тот же результат, что и вышеупомянутая гиперссылка. Есть ли способ вернуть гиперссылку в script, например, что-то вроде
function JIRA(jiraNum) {
// Returns JIRA hyperlink
var link = ("http://jira.com/browse/ISSUE-"+jiraNum,"ISSUE-"+jiraNum);
return link;
}
будет работать?
Ответы
Ответ 1
Я боролся с тем же, подал запрос и получил интересное решение:
Применительно к вашей ситуации следующее будет работать.
function onEdit(e) {
// limit to only apply to specific range
col = e.range.getColumn();
row = e.range.getRow();
if (row > 1 && row < 10 && col == 1) { // A2:A9
if (e.value != "")
e.range.setFormula("=HYPERLINK(\"http://jira.com/browse/ISSUE-"+e.value+"\", \"ISSUE-"+e.value+"\")");
}
}
Я считаю это обходным путем, но в настоящее время это, вероятно, единственный способ пойти.
Ответ 2
Отъезд: https://code.google.com/p/google-apps-script-issues/issues/detail?id=2521
Похоже, эта функция недоступна и не будет доступна.
Если вы хотите пропустить текстовый дисплей "ISSUE-1234", вы можете хотя бы вернуть ссылку для рабочей ссылки.
function JIRA(jiraNum) {
var link = 'http://jira.com/browse/ISSUE-' + jiraNum;
return link;
}
Я надеюсь, что это поможет
Ответ 3
Вы можете облегчить необходимость setForumla
и иметь дело с разрешениями, установив значение ячейки следующим образом:
=HYPERLINK(getJiraTicketLink(12345), getJiraTicketLabel(12345))
где 12345
, конечно, может быть соседней ячейкой (скрытый столбец) вместо строковой строки.
Затем вы создаете две простые функции, похожие на приведенные ниже:
var JIRA_BASE_URL = "http://jira.com/";
var JIRA_PROJECT_PREFIX = "ISSUE-";
function getJiraTicketLink(jiraNum) {
return JIRA_BASE_URL + "browse/" + JIRA_PROJECT_PREFIX + jiraNum;
}
function getJiraTicketLabel(jiraNum) {
return JIRA_PROJECT_PREFIX + jiraNum;
}
Ответ 4
Нет необходимости в функции script:
=HYPERLINK(CONCATENATE("http://jira.com/browse/ISSUE-",12345),CONCATENATE("ISSUE-",12345))
и если у вас есть jiraNum в ячейке (например, A2), вы можете использовать ссылку на ячейку:
=HYPERLINK(CONCATENATE("http://jira.com/browse/ISSUE-",A2),CONCATENATE("ISSUE-",A2))