google-apps-script - 如何从Google Apps脚本中的数据单元中检索超链接?

标签 google-apps-script google-sheets google-spreadsheet-api

我正在使用SpreadsheetApp.getActiveRange()。getValues();获取单元格区域的值,但它不返回与该单元格关联的超链接,而仅返回文本。有什么方法可以获取超链接,还是必须在其中添加带有URL的另一个字段?

谢谢。

更新:这就是我最终使用它来构建链接列表的方式。

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

最佳答案

与单元格文本关联的超链接由公式表示。 Google Spreadsheets会自动将任何URL转换为可点击的超链接,但在这种情况下,不使用公式,并且文本和URL相同。

下面是一个非常简单的解决方案(无错误检查),说明如何通过脚本获取此信息。我怀疑您是从Excel或其他方式导入的,这是您看不到HYPERLINK公式的原因。

如果您的单元格看起来像这样-

然后,此脚本将使您读取与其关联的URL-

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

关于google-apps-script - 如何从Google Apps脚本中的数据单元中检索超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13847007/

相关文章:

google-apps-script - 使用应用脚本将电子表格行复制到另一列

google-apps-script - 如何使用 Google Apps 脚本将一张工作表中的值的背景颜色设置为另一张工作表中具有匹配值的单元格?编辑部分添加

google-apps-script - 如何将上传的 CSV 或 XLS 文件中的数据自动导入 Google 表格

android - Android 应用程序中的 ExceptionInInitializerError?

google-apps-script - 这些列在 autoResizeColumns 方法中出现越界错误

php - 使用客户端登录和 PHP/cURL 登录 Google Spreadsheet API

python - 无法访问谷歌电子表格

javascript - Google Apps 脚本无法设置表单表中的值

android - AsyncTask DoInBackground 下载谷歌电子表格数据返回空值?

javascript - 将数组转换为对象并将值粘贴到不同的列中