如何在Google Apps Script中通过ID获取指定工作表?
解决getSheetById()函数报错问题
你的代码报错原因是误用了for...in循环:SpreadsheetApp.getActiveSpreadsheet().getSheets()返回的是Sheet对象数组,用for...in遍历的时候,sheet变量拿到的是数组的索引(数字类型),而不是Sheet实例,所以调用sheet.getSheetId()会提示方法未定义。
修复后的代码方案
方案一:普通for循环遍历数组元素
function getSheetById(gid){ var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); for (var i = 0; i < sheets.length; i++) { var sheet = sheets[i]; if(sheet.getSheetId() == gid){ return sheet; } } }
方案二:使用数组find方法(更简洁)
function getSheetById(gid){ return SpreadsheetApp.getActiveSpreadsheet().getSheets().find(sheet => sheet.getSheetId() === gid); }
注意事项
getSheetId()返回的是数字类型,确保传入的gid参数是数字,或者在判断时做类型转换(比如parseInt(gid)),避免因类型不匹配导致找不到目标工作表。
内容的提问来源于stack exchange,提问作者Sehyeon
相关产品推荐
相关产品推荐

