0

Google 드라이브에서 긴 목록 (약 1000 항목)의 문서 소유자를 식별하려고합니다. 소유자는 문서간에 다를 수 있습니다. 각 항목에 대한 고유 한 문서 ID가 있습니다.Google 드라이브 문서 ID의 큰 목록에 대해 문서 소유자를 반환했습니다.

저는 도메인에서 Google Apps의 관리자이며 문서 ID를 펀치하고 해당 항목의 소유권을 볼 수있는 유틸리티가 있습니다. 그러나 웹 인터페이스를 통해 한 번에 하나씩이 작업을 수행해야합니다.

스프레드 시트에서 문서 ID가 주어지면 문서 소유자를 반환 할 수있는 Google API를 활용할 수있는 방법이 있습니까? 아니면 Google 스크립트가 아마도?

답변

0

동료와 협력하여 다음과 같은 훌륭한 Google Apps 스크립트를 생성했습니다.

사용법 : D 열에있는 문서 ID 목록을 사용하여 확인하려는 행을 강조 표시하고 원하는 셀에 강조 표시된 항목을 강조 표시 한 다음 사용자 정의 "자동화"메뉴를 사용하여 실행합니다.

결과 : 소유자 E.

칼럼으로 반환된다 다음
function getOwnerFromValue(val){ 
    var doc = DriveApp.getFileById(val); 
    var user = doc.getOwner(); 
    return user; 
} 


function scanRange() { 
var range = SpreadsheetApp.getActiveRange(); 
    var start = range.getRow(); 
    var stop = range.getLastRow(); 
    var range = SpreadsheetApp.getActive().getRange("D"+start+":D"+stop) 
    var resultRange = SpreadsheetApp.getActive().getRange("E"+start+":E"+stop); 
    var result = []; 
    range.getValues().forEach(function(obj){ 
    obj = obj[0]; 
    if(obj.trim() != "") 
     result.push([getOwnerFromValue(obj).getEmail()]); 
    }); 
    resultRange.setValues(result); 
} 

function onOpen(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Get Owners' User", 
    functionName : "scanRange" 
    }]; 
    sheet.addMenu("Automation",entries); 
} 


function onAdd(e){ 
    var editted = e.range; 
    if(editted.getRow() != 1 && editted.getColumn() == 4) { 
    Logger.log(getOwnerFromValue(editted.getValue())); 
    } 
} 
0

Apps Script에서 수행 할 수 있습니다.

Class File

Google 드라이브에있는 파일

. 파일은 DriveApp에서 액세스하거나 만들 수 있습니다.

코드 샘플

var files = DriveApp.getId('DOC_ID'); 
while (files.hasNext()) { 
var file = files.next(); 

var owner = file.getOwner() 

} 

getOwner()

File의 소유자를 가져옵니다.

반환

User - 주인이 도움이

희망을 나타내는 User 객체입니다.