Google电子表格 - 使用gid访问工作表

use*_*847 7 google-sheets google-apps-script

对不起,如果我的问题在其他地方得到了解决,我整个下午一直在寻找谷歌的答案,但我还是太新手了.

我正在尝试使用Google电子表格的脚本来访问其他电子表格.我拥有的唯一信息是电子表格的URL,其中包含密钥和gid(多表spreeadsheets的某种时间顺序索引 - 只有我能找到的信息在这里).

表格URL类似于https://docs.google.com/spreadsheet/ccc?key=abc123#gid=178 ,它链接到的表格是电子表格中的第一张表格.

如何找到匹配gid的工作表?

以下不起作用,因为它基于工作表的顺序,而不是它们的创建时间:

var ss = SpreadsheetApp.openById("abc123");

var sheet = ss.getSheets();
Browser.msgBox(sheets[178].getIndex());
Run Code Online (Sandbox Code Playgroud)

提前致谢!

小智 5

我会做这样简单的事情:

var refSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SHEET NAME HERE");
var refSheetId = refSheet.getSheetId().toString();
Run Code Online (Sandbox Code Playgroud)

然后将refSheetId附加到getUrl字符串的末尾

var ssUrl = SpreadsheetApp.getActiveSpreadsheet().getUrl()+"#gid="+refSheetId;
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Sri*_*rik 0

出于多种原因最好不要依赖gid

  1. 删除的工作表不会显示在您的 getSheets() 方法中,但会在 gid 中显示,例如:

创建 Sheet1(默认为 gid#1)

创建 Sheet2 (gid#2)

删除工作表2

创建 Sheet3 (gid#3)

  1. 如果用户决定在电子表格 UI 中移动工作表,则顺序将会混乱。getSheets 按照工作表在电子表格中的排列顺序返回工作表。

访问该工作表的唯一方法是通过其名称。或者,如果您知道工作表中的某些内容,则可以搜索每个工作表。