Google 应用程序脚本 - 通过按键选择 sheet 而不是 gettsheetbyname

Google apps script - Selecting sheet by a key instead of gettsheetbyname

我的 Google 传播 sheet 中有大约 50 sheets,并且想要 return 来自不同 sheets 的不同值。但是,我觉得使用 sheet 名称作为键使用 getSheetByName 并不安全,因为它们很容易更改。我想知道是否有任何方法可以使用我看到的每个 spreadsheet 变化的 gid-ID 作为键?还是别的?

下面是我现在用的:

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

您可以使用 getSheetId().

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

[0] 更改为 [1] [2] [3] 等等。从 sheet1 到 2、3、4 等等

更多信息here

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

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;
}

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

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

建议将 mastersheet 变量重命名为更标准的名称,例如 "spreadsheetKey" 或 "workbookKey"。