返回超链接或现有公式的自定义 Google 电子表格函数



>我目前正在谷歌电子表格中输入超链接,格式如下:

=HYPERLINK("http://jira.com/browse/ISSUE-12345","ISSUE-12345")

我每次都复制"ISSUE-12345"。我想创建一个函数 JIRA(12345),它给出与上述超链接相同的结果。有没有办法在脚本中返回超链接,例如

function JIRA(jiraNum) {
  // Returns JIRA hyperlink
  var link = ("http://jira.com/browse/ISSUE-"+jiraNum,"ISSUE-"+jiraNum);
  return link;
}

会工作吗?

我为此苦苦挣扎,提交了功能请求并收到了一个有趣的解决方案:

适用于您的情况,以下内容将起作用。

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+"")");
  }
}

我认为这是一种解决方法,但目前这可能是唯一的方法。

您可以通过按如下方式设置单元格值来减轻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;
}

看看这个: 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;
 }

我希望这有所帮助

您可以使用富文本生成器:

function onEdit(e){
      var jiraIDColumnID = 1;
      var jiraIDfirstRow = 5;
      var jiraBaseURL = "https://jira.tttttt.com/";
      if (e.value != null && 
          e.value.trim().length != 0 &&
          e.range.getColumn() == jiraIDColumnID && 
          e.range.getRow() >= jiraIDfirstRow ) 
      {
        var richValue = SpreadsheetApp.newRichTextValue()
          .setText(e.value)
          .setLinkUrl(jiraBaseURL + "browse/" + e.value)
          .build();
        e.range.setRichTextValue(richValue);
      } 
    }

不需要脚本函数:

=HYPERLINK(CONCATENATE("http://jira.com/browse/ISSUE-",12345),CONCATENATE("ISSUE-",12345))

如果您在单元格中有 jiraNum(例如 A2),则可以使用单元格引用:

=HYPERLINK(CONCATENATE("http://jira.com/browse/ISSUE-",A2),CONCATENATE("ISSUE-",A2))

最新更新