2012-05-25 10 views
10

Actualmente estoy entrando en hipervínculos en una hoja de cálculo de Google en la forma:personalizada Google Función de hoja de cálculo Volviendo un hipervínculo o una fórmula existente

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

estoy Duplicación "TEMA-12345" cada vez. Me gustaría crear una función JIRA (12345) que dé el mismo resultado que el hipervínculo anterior. ¿Hay alguna manera de devolver un hipervínculo en un script, tal que algo como

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

funcionaría?

Respuesta

-3

No hay necesidad de una función de script:

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

y si usted tiene su jiraNum en una célula (por ejemplo, A2), se puede utilizar la referencia de celda:

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

Gracias por su respuesta, pero me gustaría saber cómo lograr esto con una función de script. No guardo el número en otra columna (y no tengo intención de hacerlo). – user1417354

+1

Eso es aún más tipeo; Lo que se necesita es algo simple; una función corta tal que uno simplemente puede ingresar '= JIRA ("ISSUE-1234")' en la celda y hacer que la misma celda se comporte como si = HYPERLINK (url, texto) se ingresara en ella. Cuando uno tiene que hacer esto 400 veces, uno apreciará el requisito ... –

3

Luché con el mismo, presentó un feature request and received an interesting solution:

Aplicado a su situación, lo siguiente funcionaría.

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

Considero que se trata de una solución alternativa, pero actualmente es probablemente la única manera de hacerlo.

+0

¡Genial! Solo tuve que reemplazar el "," entre los 2 parámetros de la fórmula del hipervínculo por ";" para hacer que funcione – GeH

2

Salida esto: https://code.google.com/p/google-apps-script-issues/issues/detail?id=2521

Parece ser que esta función no está disponible y no estará disponible.

Si está dispuesto a omitir la visualización de texto 'ISSUE-1234', al menos puede devolver , enlace para obtener un enlace operativo.

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

Espero que ayude

1

Puede aliviar la necesidad de setForumla y tienen que lidiar con los permisos, estableciendo el valor de la celda de la siguiente manera:

=HYPERLINK(getJiraTicketLink(12345), getJiraTicketLabel(12345)) 

donde 12345, por supuesto, puede ser un (columna oculta-) celda vecina en lugar de una cadena codificada.

A continuación, se crean dos funciones simples similares a la de abajo:

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; 
} 
Cuestiones relacionadas