我正在尝试识别Google云端硬盘中长文件列表(近1000项)的所有者。所有者可能因文档而异。我有每个项目的唯一文档ID。
我是我所在域的Google Apps管理员,并且有一个实用程序可以让我输入文档ID,并查看该特定项目的所有权。但是,我必须通过一个Web界面,一次一个。
有没有办法利用谷歌的API,比如在电子表格中,可以在给出文档ID时返回文档的所有者?或谷歌脚本?
答案 0 :(得分:0)
可以在Apps脚本中完成。
Google云端硬盘中的文件。可以从
DriveApp
访问或创建文件。
代码示例
var files = DriveApp.getId('DOC_ID');
while (files.hasNext()) {
var file = files.next();
var owner = file.getOwner()
}
获取
File
的所有者。返回
User
- 代表所有者的User
个对象
希望这有帮助。
答案 1 :(得分: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()));
}
}