Google Apps Script判断工作表存在却返回false问题求助
代码错误原因排查
- 核心错误是调用
getSheets方法时没有加执行括号():你写的var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets是直接引用方法本身的函数对象,并没有执行该方法获取工作表数组,因此sheets.length为undefined,永远无法满足>1的判断条件,所以始终输出No sheets !!!。 - 你之前注释掉的
getSheetByName逻辑本身是可用的,只要确保调用方法时加对括号,就能正常判断工作表是否存在。
修正后的可用代码
function test(){ var rv = sheetExists("Summary"); Logger.log("rv: " + rv); } function sheetExists(sheetName){ var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 方法调用必须加括号执行 var sheet = spreadsheet.getSheetByName(sheetName); var rv = sheet !== null; if(rv){ Logger.log('rv: ' + rv + '; index: ' + sheet.getIndex()); } else { Logger.log('rv: ' + rv); } return rv; }
额外注意事项
- 执行脚本时需要完成授权,允许脚本访问你的表格数据
- 传入的工作表名称要和实际表格内的名称完全一致,注意大小写、前后空格的区别
内容的提问来源于stack exchange,提问作者maxhugen
相关产品推荐
相关产品推荐

