用Google Script遍历谷歌表格所有工作表并获取名称,代码输出异常求助
问题:遍历谷歌电子表格工作表时,为什么输出全是"Sheet"?
你好呀~看了你的代码,问题出在你直接打印了Sheet对象本身,而不是它的名称属性😉
先看你原来的代码片段:
function init(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheets = ss.getSheets(); for (var i = 0; i < sheets.length; i++) { var r = sheets[i] Logger.log("sheet name:", r) } }
这里的r是一个Sheet类的实例对象,当你直接把它传给Logger.log()时,它会默认调用对象的toString()方法,而这个方法返回的就是固定的"Sheet",所以不管你有多少个工作表,输出都是一样的内容。
修正方案
你需要调用Sheet对象的getName()方法来获取工作表的实际名称,修改后的代码如下:
function init(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheets = ss.getSheets(); for (var i = 0; i < sheets.length; i++) { var sheet = sheets[i]; // 调用getName()获取工作表名称 Logger.log("sheet name: %s", sheet.getName()); } }
另外我还顺手调整了几个小细节:
- 给变量起了更清晰的名字
sheet(原来的r有点模糊) - 在
Logger.log()里用了格式化字符串%s,让输出格式更规范
运行这个修正后的函数,你就能在日志里看到每个工作表的真实名称啦~
内容的提问来源于stack exchange,提问作者user9051990
相关产品推荐
相关产品推荐

