google-apps-script - 有没有一种简单的方法可以使用 google Sheets API 获取 google sheet 中单元格的底层 URL?
问题描述
我正在使用 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);
解决方案
从您的附加信息中,我看到您正在使用 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
。
参考:
-
我希望我的回答很清楚。
推荐阅读
- android - 获取用户数据,用户根据使用 Kotlin 注册时提供的信息获取闪屏后的活动
- python - 如何通过命令行在 VS Code 中访问更新的 Python 3.9?
- php - 使用 MySQL 填充 PHP/HTML 表单上的多个下拉框时出现“mysqli::query(): Couldn't fetch mysqli”
- opendaylight - #opendaylight 关于 OpenDaylight 集群角色
- java - onCreate 被调用两次导致应用程序过早退出
- python - 使用python函数通过HTML搜索框中的下拉菜单检测击键并显示匹配的结果
- android - BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT 的替换
- mysql - 在 Azure 上公开 Docker-MySQL 容器以用作 DBaaS
- r - 如何在观星者回归输出中只保留一个变量?(与“省略”相反)
- javascript - 如何在 Manifest v3 中显示来自 background.js 的警报