【发布时间】:2022-01-27 19:45:03
【问题描述】:
我正在尝试使用 google 电子表格将文件上传到共享驱动器上的某个文件夹。我在网上找到了这段代码,它实际上并没有开始工作,但我玩过它,它仍然无法启动上传。
我使用的代码来自this website。 我修改了上传功能:
folderId = 'my folder ID'
driveId = 'my shared drive ID'
function onOpen(e){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var menuEntries = [];
menuEntries.push({name: "File", functionName: "doGet"});
ss.addMenu("Attach", menuEntries);
}
//the upload script
function upload(obj) {
var metadata = {
"parents": [{
"id": folderId,
"kind": "drive#parentReference"
}],
"teamDriveId": driveId };
var optionalParams = {
"supportsAllDrives": true
};
file = Drive.Files.insert(metadata, optionalParams);
var activeSheet = SpreadsheetApp.getActiveSheet();
var File_name = file.getName()
var value = 'hyperlink("' + file.getUrl() + '";"' + File_name + '")'
var activeSheet = SpreadsheetApp.getActiveSheet();
var selection = activeSheet.getSelection();
var cell = selection.getCurrentCell()
cell.setFormula(value)
return {
fileId: file.getId(),
mimeType: file.getMimeType(),
fileName: file.getName(),
};
}
【问题讨论】:
-
在您的脚本中,
obj的upload(obj)未使用。obj是什么? -
我知道。我认为我用作参考的原始代码有问题。里面是:
var file = DriveApp.getFolderById(Folder_Id).createFile(obj.upload);这个不起作用,因为我需要使用高级Drive功能而不是Drive.App -
这个不起作用,因为我需要使用高级
Drive功能而不是Drive.App,因为我需要上传到共享驱动器。所以,是的,这实际上让我感到困惑,也许我应该从函数中删除obj。 -
感谢您的回复。我不得不再次为我糟糕的英语水平道歉。不幸的是,我仍然无法理解你的问题。但我想试着理解它。当我能正确理解它时,我想考虑解决方案。如果您能原谅我糟糕的英语水平,我将不胜感激。
-
不用担心。我要做的是:单击电子表格上将触发上传菜单(选择文件>上传)的单元格,然后在上传完成后返回一个链接文件应存储在“团队驱动器”上的特定文件夹中”或者现在称为“共享驱动器”..现在是不是更清楚了一点?
标签: google-apps-script google-drive-api google-sheets-api