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"。
我的 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"。