지금까지 2,3 일 동안 인터넷을 검색했지만 내 문제에 대한 해결책을 찾을 수 없습니다. 나는 프로그래밍에 대한 지식이 제한되어 있지만 이것이 작동하도록 할 수 있다면 훌륭한 일을 할 것입니다.Google 스프레드 시트 복사 + 스크립트에서 동일한 사용자와 공유
설명 : 나는 스프레드 시트, 안쪽 스크립트를 사용하여 템플릿 스프레드 시트의 복사본을 만들 필요가 있고 사본 (특히 이름과 보호 범위)에 템플릿의 모든 권한을 복사. 나는 SheetSpider를 사용하고있다.
지금 현재, 나는 템플릿의 복제본을 만들 수 있지만 SheetSpider 템플릿이 가지고있는 권한을 드롭하는 것, 그리고 당신은 설치 과정에서 정의하는 사용자와 다시 작성합니다. 대신, 필자는 템플릿 파일의 사용 권한을 복사하려고합니다. 스프레드 시트를 정기적으로 복사하면 파일> 스프레드 시트를 복사하고 "동일한 사용자와 공유"확인란을 선택하는 것처럼 이름 및 보호 된 범위 설정에 대한 권한을 가져 오지 못하기 때문에 까다로운 것처럼 보입니다. 보호 범위 설정을 유지합니다.
다시, 나는이 프로그램의 매우 제한된 지식을 가지고,하지만 난 삭제하고 사용 권한을 다시 설정하는 것 선을 정확히 한 생각한다. 지금은 며칠 동안 사용 권한을 남겨 두려고 노력했지만 아무 소용이 없습니다.
도움이나 도움을 주시면 감사하겠습니다.
감사합니다. 여기
function checkFixFileACLs(file, approvedViewers, approvedEditors) {
var viewers = file.getViewers().join(",");
viewers = viewers.split(",");
var editors = file.getEditors().join(",");
editors = editors.split(",");
viewers = arr_diff(editors, viewers);
var owner = file.getOwner().toString();
var fileKey = file.getId();
var driveFile = DriveApp.getFileById(fileKey);
var currViewers = [];
for (var k=0; k<viewers.length; k++) {
if ((viewers[k]!='')&&(approvedViewers.indexOf(viewers[k].toLowerCase())==-1)&&(approvedEditors.indexOf(viewers[k].toLowerCase())==-1)&&(viewers[k]!=owner)) {
try {
call(function() {driveFile.removeViewer(viewers[k].toLowerCase());});
} catch(err) {
Logger.log(err.message);
}
} else {
currViewers.push(viewers[k].toLowerCase());
}
}
for (var k=0; k<approvedViewers.length; k++) {
if ((approvedViewers[k]!='')&&(approvedViewers[k])) {
if (currViewers.indexOf(approvedViewers[k])==-1) {
try {
call(function() {driveFile.addViewer(approvedViewers[k].toLowerCase());});
} catch(err) {
Logger.log(err.message);
}
}
}
}
var currEditors = [];
for (var k=0; k<editors.length; k++) {
if ((editors[k]!='')&&(approvedEditors.indexOf(editors[k].toLowerCase())==-1)&&(editors[k]!=owner)) {
try {
call(function() {driveFile.removeEditor(editors[k].toLowerCase());});
} catch(err) {
Logger.log(err.message);
}
} else {
currEditors.push(editors[k].toLowerCase().replace(/\s+/g, ''));
}
}
for (var k=0; k<approvedEditors.length; k++) {
if ((approvedEditors[k]!='')&&(approvedEditors[k])) {
if (currEditors.indexOf(approvedEditors[k].toLowerCase())==-1) {
try {
call(function() {driveFile.addEditor(approvedEditors[k].toLowerCase().replace(/\s+/g, ''));});
} catch(err) {
Logger.log(err.message);
}
}
}
}
return;
}
경우 잘못된 라인은 무엇입니까? 또한 공유 폴더로 파일을 이동하면 다른 사용자와 자동으로 공유된다는 사실을 사용할 수 있습니까? 그리고 이것은 꽤 오래 전이지만 고정되어 있습니까? – JZL003