当前位置: 首页 > 知识库问答 >
问题:

以编程方式构建指向图纸中命名区域的超链接

华睿识
2023-03-14

我有一个有很多命名范围的电子表格,我想有一个目录,它提供了跳转到它们的超链接。

在UI中,我可以创建一个指向命名区域的超链接,其最终格式为:

https://docs.google.com/spreadsheets/d/xxxxx/edit#rangeid=yyyyy

其中xxxx是一个长的电子表格ID,yyyy是一系列数字。

因为我有很多这样的链接,所以我想使用谷歌应用脚本以编程方式生成所有这些链接。我可以使用Spreadsheet.getRangeByName找到命名的范围对象,但是我找不到从这里获得范围的方法。

共有3个答案

魏学智
2023-03-14
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\")");
勾通
2023-03-14

您可以使用高级Google服务获得命名范围的ID:Google Sheets API。打开它在资源-高级谷歌服务...

然后使用电子表格。获取以获取您的Google工作表数据,包括命名范围信息:

var spreadsheetId = '...';

var ssData = Sheets.Spreadsheets.get(spreadsheetId);
var namedRanges = ssData.namedRanges;

Logger.log(namedRanges);

结果:

注意:API返回的namedRangeId被混淆(?)并且不能直接使用它以编程方式创建链接。由于某些原因,它与UI中的不同:

隆宏爽
2023-03-14

这似乎是不可能的,但是作为一种变通方法,Karl_S建议使用一个有效的范围链接:

function createNamedRangeUrl(name) {
  var root = SpreadsheetApp.getActiveSpreadsheet(); 
  var range = root.getRangeByName(name); 
  var sheetId = range.getSheet().getSheetId(); 
  var rangeCode = range.getA1Notation(); 
  return ("https://docs.google.com/spreadsheets/d/" + 
  root.getId() + "/edit#gid=" + sheetId + "&range=" + rangeCode); 
}
 类似资料:
  • 问题内容: 我试图以编程方式重现以下渐变。 如何以编程方式设置参数?谢谢 问题答案: http://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html 要设置该特定参数(我假设您没有指定一个centerX值): 因此,以编程方式创建上述渐变(不同颜色除外): 注意:对于径向渐变,方向将被忽略

  • 问题内容: 我不得不求助于ORM不足的原始SQL(使用Django 1.7)。问题在于大多数查询最终都具有80-90%的相似性。在不违反可重用性的前提下,我无法找到一种可靠且可靠的方式来构建查询。 字符串连接是唯一的出路,即使用条件构建无参数查询字符串,然后使用准备好的语句安全地包含参数(以避免SQL注入)。我想采用一种简单的方法来为我的项目模板SQL,而不是重新发明一个小型ORM。 例如,考虑以

  • 问题内容: 创建可以定期更改桌面墙纸的程序的最佳方法是什么?我还想围绕程序创建一个GUI。我是一名计算机科学专业的学生,​​因此我知道Java和C ++等方面的基础编程。这将在Windows 7 OS上完成。 像这样的项目使用的最佳语言是什么? 理想情况下,我想使用系统时钟来触发更改。这可能吗? 我在头上吗? 任何答案将不胜感激。谢谢。 问题答案: 这是一个相当简单的项目,可以使用任何可以调用Wi

  • 问题内容: 因此,我基本上希望能够触发一个事件,然后进行伪指令编译并将其自身插入DOM中的某个位置。目前我有这样的事情 我可以看到具有所有所需内容的“ el”对象,但无法将其插入到DOM中……有什么线索吗? 问题答案: 您必须先创建dom元素,然后对其进行编译并将其添加到文档中。像这样: 我在这里创建了一个简单的示例:http : //plnkr.co/edit/n7SZpyeQ9nbjVSYA7

  • 问题内容: 我的目的是为Java Source File中的方法以编程方式调用Eclipse命令。重命名这样的方法还应该将更改应用于使用/引用此方法的所有实例。 我相信JDT具有Refactoring API,但无法找到相同的任何文档或教程。 有人能指出我正确的方向吗? 编辑:运行时不需要更改。 问题答案: 我认为您最有前途的方法是使用Eclipse源代码。 下载带有源代码的所需版本。特别是,您需

  • 问题内容: 我刚刚将我的应用程序从支持iOS 8和更高版本改为支持iOS 9和更高版本。 由于我不使用情节提要板来创建视图,因此我想知道是否有编程方式的 “使用安全区域指南” 选项或类似的选项。 我试图固定我的视图,但它们始终重叠在iPhone X模拟器的顶部和底部。 问题答案: 在Objective-C中尝试此操作,请参见: