Google apps脚本 - 按键而不是getsheetbyname选择工作表

时间:2015-03-26 18:03:19

标签: google-apps-script google-sheets

我的Google电子表格中有大约50张,并希望从不同的工作表中返回不同的值。但是,使用getSheetByName将工作表名称作为键是不安全的,因为它们很容易更改。我想知道是否有任何方法可以使用gid-ID我看到每个电子表格更改为关键?或其他什么?

以下是我现在使用的内容:

var ssValve = SpreadsheetApp.openById('Key').getSheetByName("SheetName")

3 个答案:

答案 0 :(得分:1)

没有原生方法,但您可以为此构建一个函数:

function getSheetById(masterSheet, sheetId) {
  var ss = SpreadsheetApp.openById(masterSheet);
  var sheet = ss.getSheets();

  for( i in sheet )
    if( sheetId == sheet[i].getSheetId())
      return sheet[i];

  return -1;
}

答案 1 :(得分:0)

YES! gid是工作簿中各个工作表的不可更改的唯一标识符。

令人惊讶的是,您不能将脚本作为基本标识符,如GetSheetByID()。我将在我的工作表中使用您的代码。

建议将mastersheet变量重命名为更标准的内容,例如“spreadsheetKey”或“workbookKey”。

答案 2 :(得分:-1)

您可以使用getSheetId()

var ssValve = SpreadsheetApp.openById('Key').getSheets()[0]

[0]更改为[1] [2] [3],依此类推...从sheet1转到2,3,4等等

更多信息here