0

一个 google-app-script 电子表格 (inputBookObj) 有 3 张

[0] "ABC"
[1] "DEF"
[2] "HIJ"

如何在不循环“inputBookObj”中的所有工作表的情况下通过工作表名称“DEF”获取序列“1”?

我已经尝试过不返回序列的工作表 Class .getId() 。

var startSheetObj = inputBookObj.getSheetByName("DEF");
var startSheetId = startSheetObj.getSheetId();
for (var st_idx = startSheetId; st_idx >= 0; st_idx --) {

我希望 startSheetId 为 1,但我得到 2050320780。

4

2 回答 2

1

GridId 与工作表索引不同。您可以使用sheet.getIndex()来获取父级中工作表的索引。

var startSheetObj = inputBookObj.getSheetByName("DEF");
var startSheetId = startSheetObj.getIndex();//-1, if you want to start from 0
Logger.log(startSheetId);//logs 2
于 2019-10-03T09:32:01.780 回答
0

您可以使用方法getSheets()

样本:

var startSheetObj = inputBookObj.getSheets()[1];

或者,您想遍历电子表格的所有工作表:

var sheets=inputBookObj.getSheets();
for (var st_idx = sheets.length; st_idx >= 0; st_idx --) {
...
}

至于工作表ID,它是电子表格Url末尾的数字,例如...gid=0表示工作表ID是0。但是,如果您插入第二张工作表,其 ID 将类似于...gid=1668900245- 没有顺序,除非您使用 Sheets API创建工作表,您可以在其中指定新工作表的 ID。

于 2019-10-03T09:07:21.437 回答