表单功能在独立的Google脚本中运行,但不是在脚本绑定到Google表格时

时间:2017-11-01 05:08:37

标签: google-sheets google-form

当我在作为网络应用程序运行的独立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对象在第一种情况下可用,但在第二种情况下不可用,我应该如何更改代码以克服此错误。

1 个答案:

答案 0 :(得分:2)

Sheets是高级Google服务的方法之一。因此,为了使用高级Google服务的Sheets,请按照以下步骤为高级Google服务和API控制台启用Sheets API。

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

在高级Google服务中启用表格API v4

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

在API控制台启用Sheets API v4

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

参考文献:

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