如何通过工作表名称获取工作表序列

时间:2019-10-03 08:48:42

标签: google-apps-script

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以使用方法getSheets()

示例:

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

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

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

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