Sheets 函数在独立 Google 脚本中工作,但当脚本绑定到 Google Sheet 时不工作
Sheets function working in standalone Google Script but NOT when script is bound to a Google Sheet
我有这段代码,当我在独立 Google 脚本 运行 作为网络应用程序使用它时,它运行良好:
function getSubjectsRollNosFromGradeSheet() {
var spreadsheetId = '171hWWH8bV6kM1JJ2dvL80q3BoWC6eEc0U7l7wCTaXHE';
var rangeSubject = 'GradesT1!G1:AA1';
var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeSubject).values;
然而,当我在脚本中编写相同的代码时,该脚本嵌入另一个 Google sheet(不是正在访问数据的脚本)附加到 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: "Sheets" is not defined. (line 16, file "Code")
为什么 Sheets 对象在第一种情况下可用而在第二种情况下不可用,我应该如何更改我的代码以克服此错误。
Sheets
是高级 Google 服务的方法之一。因此,为了使用 Sheets
的高级 Google 服务,请启用 Sheets API 的高级 Google 服务和 API 控制台,如下所示。
请在包含问题脚本的绑定脚本中执行此操作。
在高级 Google 服务中启用表格 API v4
- 在脚本编辑器上
- 资源 -> 高级 Google 服务
- 打开 Google Sheets API v4
- 在 API 控制台启用表格 API v4
在 API 控制台启用表格 API v4
- 在脚本编辑器上
- 资源 -> 云平台项目
- 查看API控制台
- 在开始时,单击启用 APIs 并获取密钥等凭据。
- 在左侧,单击“库”。
- 在搜索 API 和服务时,输入 "sheets"。然后单击 Google 工作表 API。
- 单击“启用”按钮。
参考资料:
- 高级 Google 服务:https://developers.google.com/apps-script/guides/services/advanced
- 工作表 API v4:https://developers.google.com/sheets/api/
如果我误解了你的问题,我很抱歉。
我有这段代码,当我在独立 Google 脚本 运行 作为网络应用程序使用它时,它运行良好:
function getSubjectsRollNosFromGradeSheet() {
var spreadsheetId = '171hWWH8bV6kM1JJ2dvL80q3BoWC6eEc0U7l7wCTaXHE';
var rangeSubject = 'GradesT1!G1:AA1';
var values = Sheets.Spreadsheets.Values.get(spreadsheetId, rangeSubject).values;
然而,当我在脚本中编写相同的代码时,该脚本嵌入另一个 Google sheet(不是正在访问数据的脚本)附加到 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: "Sheets" is not defined. (line 16, file "Code")
为什么 Sheets 对象在第一种情况下可用而在第二种情况下不可用,我应该如何更改我的代码以克服此错误。
Sheets
是高级 Google 服务的方法之一。因此,为了使用 Sheets
的高级 Google 服务,请启用 Sheets API 的高级 Google 服务和 API 控制台,如下所示。
请在包含问题脚本的绑定脚本中执行此操作。
在高级 Google 服务中启用表格 API v4
- 在脚本编辑器上
- 资源 -> 高级 Google 服务
- 打开 Google Sheets API v4
- 在 API 控制台启用表格 API v4
在 API 控制台启用表格 API v4
- 在脚本编辑器上
- 资源 -> 云平台项目
- 查看API控制台
- 在开始时,单击启用 APIs 并获取密钥等凭据。
- 在左侧,单击“库”。
- 在搜索 API 和服务时,输入 "sheets"。然后单击 Google 工作表 API。
- 单击“启用”按钮。
参考资料:
- 高级 Google 服务:https://developers.google.com/apps-script/guides/services/advanced
- 工作表 API v4:https://developers.google.com/sheets/api/
如果我误解了你的问题,我很抱歉。