提问人:Jens Stuber 提问时间:11/17/2023 更新时间:11/20/2023 访问量:70
从 Google 脚本打开 JSON 文件
open json file from google scripts
问:
我的 Google Drive 中有一个 JSON 文件,我想从 Google 表格中读取它。 我在工作表中打开了脚本编辑器并添加了以下功能:
function jsonTest() {
var doc = DocumentApp.openById('1PpnL26_gx3v_sLEkOjnlyIaEIs8FE1ah');
var body = doc.getBody().getText()
return body.length
}
当我在工作表中调用它时,我收到一个错误。控制台告诉我,我缺少权限,但我将其添加到我的清单中:
{
"timeZone": "Europe/Paris",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"oauthScopes": [
"https://www.googleapis.com/auth/documents"
]
}
我做错了什么?
答:
1赞
Cooper
11/18/2023
#1
这对我有用:
function jsonTest() {
var doc = DocumentApp.openById('id');
var body = doc.getBody().getText()
Logger.log(body.length)
}
1赞
cnavar
11/20/2023
#2
替代解决方案
您正在执行的操作将不起作用,因为您使用的是自定义函数。根据 Google 表格中的自定义函数:
如果自定义函数抛出错误消息,则该服务需要用户授权,因此不能在自定义函数中使用。
You do not have permission to call X service.
要使用上面列出的服务以外的服务,请创建一个运行 Apps 脚本函数的自定义菜单,而不是编写自定义函数。如有必要,从菜单触发的函数将要求用户进行授权,从而可以使用所有 Apps 脚本服务。
要解决此问题,您可以按照文档中的建议进行操作,或者直接尝试如下操作:
const jsonTest = () => {
var documentBody = DocumentApp.openById('1PpnL26_gx3v_sLEkOjnlyIaEIs8FE1ah').getBody().getText();
SpreadsheetApp.getActiveSpreadsheet().getRange('A1').setValue(documentBody);
}
此代码将获取包含您的文件的 Google 文档的正文,并将其值粘贴到工作表中指定的单元格上。JSON
您也可以遵循@Cooper的方法,通过使用console.log(;
或Logger.log();
,您将能够在Google Apps脚本中看到。JSON
Execution log
评论
have a json file
google drive