You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:59:41