2015-04-17 31 views
0

我試圖將活動電子表格的副本複製到特定文件夾,然後從複製的電子表格中刪除所有編輯器並將自己保留爲所有者。將電子表格複製到特定文件夾並從副本中刪除查看者

這裏是我的代碼:

//Save Spreadsheet in selected folder 

function freezeSS(vname,option) { 

if (vname != ""){ 


var mainSs =   SpreadsheetApp.getActiveSpreadsheet(); 
var SSID =    mainSs.getId(); 
var CopyDate =   Utilities.formatDate(new Date(), "GMT-3", "dd/MM/yy-HH:mm"); // Function Date + Format 
var file =    DriveApp.getFileById(SSID); 


if (option == "Public") { 
    var folder = DriveApp.getFolderById("0B_EpGZ420rEUfk1mZ2Z3RmFKUk9xaGd1bm1CdGhmZ0FCbTdVT2p2MUlJY3NZUTV0MTR0LTQ"); 
    file.makeCopy(vname + "_" + CopyDate, folder); 
} 

else { 

    var folder =  DriveApp.getFolderById("0B_EpGZ420rEUfk9jTl81NXNVOXNhRDF2N2R4c1FGTW9wQTB5Q3dNS25nd1NEejBTWWd1RFk"); 
    var backup =  file.makeCopy(vname + "_" + CopyDate, folder); 
    var editors =  backup.getEditors().getEmail(); 
    Logger.log(editors); 
    var permision = backup.removeEditor(editors); 

} 
} return false; 
} 

一切正常,但我必須去除編輯的一個問題。我總是遇到錯誤,並且仍然具有與原始電子表格中相同的編輯器。

回答

0

隨着文檔狀態,你有removeEditor)2個選項(:

removeEditor(user) 

removeEditor(emailAddress) 

你既沒有使用,你需要做的getEditors循環()未經getEmail(),這其中也將進入循環,像這樣:

var editors =  backup.getEditors(); 
for(i in editors){ 
    var email = editors[i].getEmail(); 
    var permision = backup.removeEditor(email); 
} 

或更短:

var editors = backup.getEditors(); 
    for(i in editors) 
     var permision = backup.removeEditor(editors[i]); 

順便說一句,這是有據可查的,一個ctrl + c ctrl + v從那裏幾乎可以解決你的問題,請多花一點時間來擺弄它。

https://developers.google.com/apps-script/reference/drive/user#getEmail();

+0

Thx很多Kriggs這適合我 –

相關問題