5

Sto usando SpreadsheetApp.getActiveRange(). GetValues ​​(); per ottenere il valore di un intervallo di celle, ma non restituisce il collegamento ipertestuale associato a quella cella, solo il testo. C'è un modo per ottenere il collegamento ipertestuale o devo aggiungere un altro campo con l'url in esso?Come posso recuperare il collegamento ipertestuale da una cella di dati nello script di app di Google?

Grazie.

AGGIORNAMENTO: Questo è il modo in cui ho finito per usarlo per creare un elenco di collegamenti.

<ul> 
    <? 
    var range = SpreadsheetApp.getActiveRange(); 
    var data = range.getValues(); 
    var links = range.getFormulas(); 

    for(var i=1; i < data.length; i++){ 
     if(data[i][0] !== ''){ 
      ?> 
      <li><a href="<?= links[i][0].split("\"")[1]; ?>"><?= data[i][0]; ?></a></li> 
      <? 
     } 
    } 
    ?> 
</ul> 

risposta

9

Un collegamento ipertestuale associato a un testo di cella si manifesta con una formula. Google Spreadsheets converte automagicamente qualsiasi URL in un collegamento ipertestuale selezionabile, ma in questi casi le formule non vengono utilizzate e il testo e l'URL sono gli stessi.

Di seguito è una soluzione molto semplice (nessun controllo degli errori) su come è possibile ottenere ciò tramite gli script. Ho il sospetto che tu abbia importato questo da Excel o qualcos'altro e che non vedi prontamente la formula HYPERLINK.

Se si dispone di una cella che assomiglia a questo -

Cell with hyperlink

Quindi questo script ti consente di leggere l'URL associato con esso -

function getURL() { 
    var range = SpreadsheetApp.getActiveSheet().getActiveCell(); 

    //logs - Google 
    Logger.log(range.getValue()); 

    //logs - =HYPERLINK("http://www.google.com", "Google") 
    Logger.log(range.getFormulaR1C1()); 

    //simple regex to get first quoted string 
    var url = /"(.*?)"/.exec(range.getFormulaR1C1())[1]; 

    //logs - http://www.google.com 
    Logger.log(url); 
} 
+3

Grazie che mi hanno portato nella direzione giusta . var links = SpreadsheetApp.getActiveRange(). GetFormulas(); Davvero fantastico. – Scottux

+0

Funziona, ma qual è il giusto metodo di distribuzione per chiunque sia anonimo? – hyip

+0

Nota che questo non funziona se HYPERLINK ha un URL dinamico. –

Problemi correlati