【问题标题】:Sheets function working in standalone Google Script but NOT when script is bound to a Google Sheet表格功能在独立的 Google 脚本中工作,但在脚本绑定到 Google 表格时不起作用
【发布时间】:2017-11-01 05:08:37
【问题描述】:

当我在作为网络应用程序运行的独立 Google 脚本中使用这段代码时,它运行良好:

function getSubjectsRollNosFromGradeSheet() {
  var spreadsheetId = '171hWWH8bV6kM1JJ2dvL80q3BoWC6eEc0U7l7wCTaXHE';
  var rangeSubject = 'GradesT1!G1:AA1';

  var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeSubject).values;

但是,当我在附加到 Google 表单的另一个 Google 表格(不是正在访问的数据)中嵌入的脚本中编写相同的代码时,我收到一个错误:

function updateForm(){

  // call your form and connect to the drop-down item
  var form = FormApp.openById("1VV_LeFJODZcIzfcYOh8vHEkhl033Lx4ZsXaY4Pm1ZUE");
  var subList1 = form.getItemById("497738674").asListItem();

  //pull data from another sheet
  var spreadSheetID = "1EJSx62rZuLSKIgel7LH8hE7-68lupz4buutmVQBqi2I";
  var rangeSubs = 'Sheet1!A1:A';

  var subValues = Sheets.Spreadsheets.Values.get(spreadSheetID, rangeSubs).values;

我收到此错误

ReferenceError:未定义“表格”。 (第 16 行,文件“代码”)

为什么 Sheets 对象在第一种情况下可用但在第二种情况下不可用,我应该如何更改我的代码来克服这个错误。

【问题讨论】:

    标签: google-apps-script google-sheets google-forms


    【解决方案1】:

    Sheets 是高级谷歌服务的方法之一。所以为了使用高级谷歌服务的Sheets,请如下启用高级谷歌服务和API控制台的Sheets API。

    请在包含您的问题脚本的绑定脚本中执行此操作。

    在高级 Google 服务中启用 Sheets API v4

    • 在脚本编辑器上
      • 资源 -> 高级 Google 服务
      • 启用 Google Sheets API v4
      • 在 API 控制台启用 Sheets API v4

    在 API 控制台启用 Sheets API v4

    • 在脚本编辑器上
      • 资源 -> 云平台项目
      • 查看 API 控制台
      • 在开始时,单击启用 API 并获取密钥等凭据。
      • 点击左侧的库。
      • 在搜索 API 和服务时,输入“表格”。然后点击 Google Sheets API。
      • 点击启用按钮。

    参考资料:

    如果我误解了你的问题,我很抱歉。

    【讨论】:

    • 是的。这解决了问题。我真愚蠢,竟然错过了这个。
    • @Calcutta 我很高兴能帮上忙。在最近的 Google 更新中,清单已添加到 Google Apps 脚本中。通过使用它,高级谷歌服务也可以通过 json 启用。详细信息是here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多