Google Scripts: accessing spreadsheet files, TypeError: Cannot call method "openById" of null. (line 2, file "Code") Dismiss
Google Scripts: accessing spreadsheet files, TypeError: Cannot call method "openById" of null. (line 2, file "Code") Dismiss
代码:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().openById('https://docs.google.com/a/e4b.us/spreadsheets/d/1DBty8ZiTqZ8MHPkFipjL8wDZqR2Ae9PLrNAQtW2QD2k/edit#gid=0');
var ss = SpreadsheetApp.getActive();
var mylocationInfo = ss.getRange("A2:B4").getValues();
logger.log(mylocationInfo.getData)
}
我认为删除 url 的非必要方面(例如 /edit#gid=0)可能会有所帮助。没有。
这是 URL 确实有效的证据:
编辑 我试过没有完整的 URL,只是使用实际 ID,我收到了相同的消息。
编辑 我删除了函数“.getActiveSpreadSheet”并得到错误"Bad Value"
我尝试将 getById 更改为 getByUrl,输入完整的 URL,但我收到错误消息,指出缺少 ID 的文件。如屏幕截图所示,该文件存在。 url 是在执行脚本之前立即复制粘贴的。
changed:3:07pm
EDIT 我尝试使用 getByUrl 链接到不同的电子表格,但得到了相同的错误消息。已更改 3:10pm
为什么 getById return 为空?
为什么 getByUrl 找不到我的文件?
您正在同时使用:getActiveSpreadsheet()
和 openById()
。那是一个冲突。您需要使用其中之一。
您的代码:
var sheet = SpreadsheetApp.getActiveSpreadsheet()
.openById('https://docs.google.com/a/e4b.us/spreadsheets/d/Your ID/edit#gid=0');
var ss = SpreadsheetApp.getActive();
另外,您使用的不是 ID,而是 URL。如果你想通过URL获取文件的引用,使用方法:openByUrl()
代码应如下所示:
var ss = SpreadsheetApp.openById('Your ID');
var sheet = ss.getActiveSheet();
变量名ss
代表spread sheet。这就是整个 spreadsheet 文件。 sheet
是分布内的一个 sheet 标签sheet。
代码:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().openById('https://docs.google.com/a/e4b.us/spreadsheets/d/1DBty8ZiTqZ8MHPkFipjL8wDZqR2Ae9PLrNAQtW2QD2k/edit#gid=0');
var ss = SpreadsheetApp.getActive();
var mylocationInfo = ss.getRange("A2:B4").getValues();
logger.log(mylocationInfo.getData)
}
我认为删除 url 的非必要方面(例如 /edit#gid=0)可能会有所帮助。没有。
这是 URL 确实有效的证据:
编辑 我试过没有完整的 URL,只是使用实际 ID,我收到了相同的消息。
编辑 我删除了函数“.getActiveSpreadSheet”并得到错误"Bad Value" 我尝试将 getById 更改为 getByUrl,输入完整的 URL,但我收到错误消息,指出缺少 ID 的文件。如屏幕截图所示,该文件存在。 url 是在执行脚本之前立即复制粘贴的。 changed:3:07pm
EDIT 我尝试使用 getByUrl 链接到不同的电子表格,但得到了相同的错误消息。已更改 3:10pm
为什么 getById return 为空? 为什么 getByUrl 找不到我的文件?
您正在同时使用:getActiveSpreadsheet()
和 openById()
。那是一个冲突。您需要使用其中之一。
您的代码:
var sheet = SpreadsheetApp.getActiveSpreadsheet()
.openById('https://docs.google.com/a/e4b.us/spreadsheets/d/Your ID/edit#gid=0');
var ss = SpreadsheetApp.getActive();
另外,您使用的不是 ID,而是 URL。如果你想通过URL获取文件的引用,使用方法:openByUrl()
代码应如下所示:
var ss = SpreadsheetApp.openById('Your ID');
var sheet = ss.getActiveSheet();
变量名ss
代表spread sheet。这就是整个 spreadsheet 文件。 sheet
是分布内的一个 sheet 标签sheet。