对不起,如果我的问题在其他地方得到了解决,我整个下午一直在寻找谷歌的答案,但我还是太新手了 .
我'm trying to use Google spreadsheets'脚本可以访问不同的电子表格 . 我唯一的信息是电子表格的URL,它有密钥和gid(多表spreeadsheets的某种时间顺序索引 - 我只能找到的信息是here) .
工作表网址类似于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());
提前致谢!
4 回答
我会做这样简单的事情:
然后将refSheetId附加到getUrl字符串的末尾
希望这可以帮助!
我知道这已经晚了,可能对原始请求者没用了 . 但是我在研究功能时看到了这个问题,但最后我自己解决了这个问题 . 您可以通过gid查找工作表,并且当您删除工作表时它不会改变这一事实是一件好事....如果您打算如何使用它 . 基本上我得到所有的工作表,并循环通过工作表名称和工作表gid,直到gid匹配,然后我按名称调用工作表 .
这是我用来连续编辑的一些代码的一部分,从编辑的聚合工作表开始,并作为双向同步的一部分推送到子工作表 . 如果您只存储了gid和密钥,则可以跳过我显示的步骤,并仅引用这些值 . 它似乎工作得非常快,它是一个更复杂的脚本然后从工作簿运行与打破的工作表,但两个脚本几乎只需2秒推动,这是我可以接受的 .
我就是这样做的:
出于多种原因,最好不要依赖gid
创建Sheet1(默认情况下,gid#1)
创建Sheet2(gid#2)
删除Sheet2
创建Sheet3(gid#3)
你可以到达工作表的唯一方法是它的名字 . 或者,如果您知道工作表中的某些内容,则可以搜索每个工作表 .