【问题标题】:Is there an easy way to get the underlying URL for the cells in a google sheet using the google Sheets API?有没有一种简单的方法可以使用 google Sheets API 获取 google sheet 中单元格的底层 URL?
【发布时间】:2020-04-24 03:50:12
【问题描述】:

我正在使用 Google 表格和幻灯片 API 从表格中读取数据并创建 Google 幻灯片。

有些单元格包含链接,我也希望能够将它们显示为幻灯片中的链接。有没有办法使用 Google Sheets API 获取单元格的超链接?

我通过以下方式获取单元格中的值:

var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl); 
var sheet = ss.getSheetByName('countryData'); 
// Use the Sheets API to load data, one record per row. 
var values = sheet.getRange('A2:W10').getValues(); 
for (var i = 0; i < values.length; ++i) { 
    var row = values[i]; var country = row[0];
    //name in column 1 
    Logger.log(country);
} 

我可以调用值上的方法来获取该特定单元格上的超链接吗? (例如,对于阿富汗的价值,工作表上的超链接是 Afg 的 BBC 页面。)

我正在使用以下内容替换幻灯片中的令牌国家/地区: shape.getText().replaceAllText('{{country}}',country);

【问题讨论】:

  • 你能分享一下你到目前为止所尝试的吗?您是否尝试将它们作为字符串插入?
  • 我通过以下方式获取单元格中的值: var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl); var sheet = ss.getSheetByName('countryData'); // 使用 Sheets API 加载数据,每行一条记录。 var values = sheet.getRange('A2:W10').getValues(); for (var i = 0; i
  • 例如对于阿富汗的价值,工作表上的超链接是 Afg 的 BBC 页面。我正在使用以下内容替换幻灯片中的令牌国家: shape.getText().replaceAllText('{{country}}',country);
  • 请编辑您的问题以及您尝试过的内容。因为一起阅读会更容易。此外,您似乎使用的是 Apps 脚本,而不是 Sheets API。如果您有样本表,也可以发布指向它的链接。
  • 用解决方案更新了我的答案。

标签: google-apps-script hyperlink google-sheets-api google-slides-api


【解决方案1】:

根据您的附加信息,我看到您正在使用 Apps 脚本。

要获取各国链接的url,可以使用Range.getFormula()方法。但是,您需要使用以下公式: =HYPERLINK(url, [linkLabel]) 在您的工作表中。 然后您可以使用以下代码,例如,使用 Apps 脚本获取 url:

function getHyperlinkUrl(range) {
  // The range should use the sheets formula: `=HYPERLINK(url,[linkLabel])`
  // Example: HYPERLINK("http://www.venezuela.com/", "Venezuela")
  
  var url = range.getFormula().split('"')[1];
  Logger.log(url);
  // Output: http://www.venezuela.com/
}

使用该值,您可以构建一个 textRun 对象,如下所示:

"textRun": {
    "content": "<YOUR-HYPERLINK-FROM-SHEETS>",
    "style": {
        "foregroundColor": {
            "opaqueColor": {
                "themeColor": "HYPERLINK"
            }
        },
        "link": {
            "url": "<YOUR-HYPERLINK-FROM-SHEETS>"
        },
        "underline": true
    }

并使用presentations.batchUpdate 方法将其插入到幻灯片中。


参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多