我只是想复制一个打开的工作表文件。我尝试了很多变化而没有成功。以下是一个例子。会重视任何援助。谢谢。
function copyDocs() {
var file = DriveApp.getFilesByName('My Income Statement');
file.makeCopy();
}
答案 0 :(得分:2)
使用DriveApp.getFilesByName()
检索的数据为FileIterator。在这种情况下,使用next()
检索文件。
示例脚本有两种模式。
如果文件名只是云端硬盘中的文件名,则可以使用以下示例脚本。此示例使用文件名复制文件。
function copyDocs() {
var file = DriveApp.getFilesByName('My Income Statement').next();
file.makeCopy();
}
如果存在具有相同文件名的文件并且您要复制其中一个文件,则可以使用以下示例脚本。此示例使用fileID复制文件。可以按如下方式检索fileID。
对于文件,
https://docs.google.com/document/d/### File ID ###/edit
对于电子表格,
https://docs.google.com/spreadsheets/d/### File ID ###/edit
示例脚本:
function copyDocs() {
var file = DriveApp.getFileById("### File ID ###");
file.makeCopy();
}
此示例用于使用电子表格上的对话框打开复制的文件。由于复制的文件作为新窗口打开,请允许打开弹出窗口。
dialog()
。通过上述流程,复制fileId
文件并将其作为新窗口打开。
function dialog() {
var data = '<input type="button" value="copy" onclick="google.script.run.withSuccessHandler(openfile).filecopy();"><script>function openfile(url) {window.open(url);}</script>';
var html = HtmlService.createHtmlOutput(data);
SpreadsheetApp.getUi().showModalDialog(html, 'Sample dialog');
}
function filecopy(){
var fileId = "### File ID ###";
return DriveApp.getFileById(fileId).makeCopy().getUrl();
}