>我目前正在谷歌电子表格中输入超链接,格式如下:
=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))