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

Google Script运行报错ReferenceError: sheet未定义,求解决方案

解决Google Script中"ReferenceError: 'sheet' is not defined"的问题

嗨,我帮你看了下你的代码问题,其实原因很简单——你只打开了整个Google电子表格对象,但从来没有定义过sheet这个变量,直接调用sheet.getSheetValues()自然会触发引用错误。

问题根源

你的代码里通过SpreadsheetApp.openByUrl(url)获取了电子表格实例存在SpreadSheet变量中,但没有从这个实例里拿到具体的工作表(Sheet)对象,所以脚本不知道sheet指的是什么。

修正后的代码

function doGet(e) { 
  var url = 'https://docs.google.com/spreadsheets/d/1p3fW0Vkx89tdiws3Z-a5_LpLwyGYj7pacIek3f9Z96w/edit#gid=1862590156';
  var name = '無標題表單 (回應)';
  // 获取整个电子表格对象
  var spreadSheet = SpreadsheetApp.openByUrl(url);
  // 通过工作表名称获取具体的sheet对象(这是你漏掉的关键步骤)
  var sheet = spreadSheet.getSheetByName(name);
  
  // 增加判断:确保找到目标工作表再执行后续操作
  if (sheet) {
    var values = sheet.getSheetValues(1, 1, 1, 1);
    Logger.log(values);
  } else {
    Logger.log('错误:未找到名为「' + name + '」的工作表');
  }
}

关键修改说明

  • 新增var sheet = spreadSheet.getSheetByName(name);:通过你定义的工作表名称,从电子表格中拿到对应的工作表实例,这样sheet变量就有了合法的引用
  • 增加了工作表存在性判断:避免因为工作表名称写错、被删除等情况导致新的报错
  • 规范了变量命名:把SpreadSheet改成小写开头的spreadSheet,符合JavaScript的驼峰命名习惯(不影响功能,但代码可读性更好)

备选获取工作表的方式

如果不确定工作表名称,也可以通过工作表在电子表格中的索引获取(索引从0开始,第一个工作表是0,第二个是1,以此类推):

// 获取第二个工作表(对应你URL里的gid=1862590156的表,你可以自己数下顺序)
var sheet = spreadSheet.getSheets()[1];

内容的提问来源于stack exchange,提问作者void_servent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:32:55