我有一个包含许多命名范围的电子表格,我希望有一种目录,提供跳转到它们的超链接。
在UI中,我可以创建指向范围的超链接,最终格式为:
https://docs.google.com/spreadsheets/d/xxxxx/edit#rangeid=yyyyy
其中xxxx是一个较长的电子表格ID,而yyyy是一系列数字。
由于我有很多这些,我想使用Google Apps脚本以编程方式生成所有这些链接。我可以使用Spreadsheet.getRangeByName找到命名的范围对象,但我找不到从中获取范围的方法。
答案 0 :(得分:1)
这似乎不可能,但作为解决方法,Karl_S建议使用可行的范围链接:
default
答案 1 :(得分:0)
您可以使用高级Google服务: Google Sheets API 获取命名范围的ID。在资源-高级Google服务...
上启用它然后使用spreadsheets.get
来获取您的Google表格数据,包括命名范围信息:
var spreadsheetId = '...';
var ssData = Sheets.Spreadsheets.get(spreadsheetId);
var namedRanges = ssData.namedRanges;
Logger.log(namedRanges);
结果:
注意:API返回的namedRangeId
被混淆了(?),您不能直接使用它来以编程方式创建链接。由于某些原因,它与在UI中看到的有所不同:
答案 2 :(得分:-2)
var fullSpreadsheetLink = "full spreadsheet link goes here"
var spreadsheetTabName = "tab name goes here"
var spreadsheet = SpreadsheetApp.openByUrl(fullSpreadsheetLink);
var sheet = spreadsheet.getSheetByName(spreadsheetTabName);
var myCell = sheet.getRange("A1");
var linkCell = sheet.getRange("A2")
var dataSourceUrl = myCell.getDataSourceUrl();
var urlArray = dataSourceUrl.split("&");
linkCell.setValue("=HYPERLINK(\"#"+urlArray[3]+"&"+urlArray[4]+"\",\"link to A1\")");