错误异常:无效参数: permission.value
我想如果是因为数据(两封电子邮件)超过了数组。
记录器(Data_arr)的结果如下:[获取驱动器ID、1gCXwpREH8doX9btKY_rrQyrSep7H63NFhMEe2xLw5pw、扩展sheet3、1yyr6edKuRekWQydINNgZb6g_Sw4BYOK1OAfLWo9L1D8、kxexxx91@gmail.com、tongxxxa@gmail.com、sheet2、1yR4LipZ2NSnzccMI8ebDP7K3N7oqavPEvfdYfD7CCI,,,]
请给我一些调整建议,以增加多个编辑。
对不起,我的语言,谢谢你的帮助。
全码
function addUsers(){
// Read Data from sheet
let sheet = SpreadsheetApp.getActiveSheet();
//Logger.log(sheet)
let range = sheet.getRange(3,1,3,5);
//Logger.log(range)
let data_arr = range.getValues();
Logger.log(data_arr)
for (data of data_arr){
let file_ID = data[1];
let editors_mail_arr = data[2];
let viewers_mail_arr = data[3];
let commenters_mail_arr = data[4];
let file = DriveApp.getFileById(file_ID);
if(editors_mail_arr!=[]) file.addEditors([editors_mail_arr]);
if(viewers_mail_arr!=[]) file.addViewers([viewers_mail_arr]);
if(commenters_mail_arr!=[]) file.addCommenters([commenters_mail_arr]);
};
};发布于 2022-05-08 15:02:30
[ // Your provided data.
["get drive ID", ID, , , ],
["spread sheet3", ID, "email1,email2", , ],
["spread sheet2", ID, , , ]
]虽然您正在正确地将一个String[]传递给这些方法,但是您需要以["string1", "string2"]的形式传递它们;目前它们是["string1,string2"]。
一个简单的修复方法是重写:
let editors_mail_arr = data[2];
let viewers_mail_arr = data[3];
let commenters_mail_arr = data[4];
// ...
if(editors_mail_arr!=[]) file.addEditors([editors_mail_arr]);
if(viewers_mail_arr!=[]) file.addViewers([viewers_mail_arr]);
if(commenters_mail_arr!=[]) file.addCommenters([commenters_mail_arr]);To:
let editors_mail_arr = data[2].split(`,`);
let viewers_mail_arr = data[3].split(`,`);
let commenters_mail_arr = data[4].split(`,`);
// ...
if(editors_mail_arr.length) file.addEditors(editors_mail_arr);
if(viewers_mail_arr.length) file.addViewers(viewers_mail_arr);
if(commenters_mail_arr.length) file.addCommenters(commenters_mail_arr);这是假设数据被拆分为user1,user2,如所提供的示例所示。
资源:
https://stackoverflow.com/questions/72162168
复制相似问题