我如何从一个数据单元获取的超级链接在谷歌的Apps脚本?(How can I retrieve th

2019-07-05 02:06发布

我使用SpreadsheetApp.getActiveRange()的GetValues()。 得到的单元格区域的价值,但它不返回与该小区,只有文本关联的超链接。 有没有什么办法让超链接或我必须添加一个字段,在它的网址是什么?

谢谢。

更新:这是我最后使用它来建立一个链接列表。

<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>

Answer 1:

与小区相关联的文本的超链接是由式表现。 谷歌电子表格不会自动的任何URL转换成一个点击的超链接,但在这些情况下,公式不使用,并且文字和网址是相同的。

下面是一个非常简单的解决方案(没有错误检查),作为对如何通过脚本得到这个。 我怀疑你从Excel或其他东西的进口这一点,那就是你不容易看到HYPERLINK公式。

如果你有一个看起来像这样的细胞 -

然后,该脚本可以让你读与它相关的网址 -

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


文章来源: How can I retrieve the hyperlink from a data cell in google apps script?