Google Apps 脚本复制文件

Tac*_*tus 5 file duplicates google-apps-script

我只是想复制一个打开的工作表文件。我尝试了很多变化都没有成功。下面是一个例子。会重视任何帮助。谢谢你。

function copyDocs() {
    var file = DriveApp.getFilesByName('My Income Statement');
    file.makeCopy();
}
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 6

使用检索的数据DriveApp.getFilesByName()FileIterator。在这种情况下,使用 检索文件next()

示例脚本有 2 种模式。

示例脚本 1

模式1:

如果驱动器中的文件名只有一个,则可以使用以下示例脚本。此示例使用文件名复制文件。

function copyDocs() {
  var file = DriveApp.getFilesByName('My Income Statement').next();
  file.makeCopy();
}
Run Code Online (Sandbox Code Playgroud)

模式2:

如果存在具有相同文件名的文件,并且您想复制其中之一,则可以使用以下示例脚本。此示例使用 fileID 复制文件。可以按如下方式检索文件 ID。

对于文档,

https://docs.google.com/document/d/### File ID ###/edit
Run Code Online (Sandbox Code Playgroud)

对于电子表格,

https://docs.google.com/spreadsheets/d/### File ID ###/edit
Run Code Online (Sandbox Code Playgroud)

示例脚本:

function copyDocs() {
  var file = DriveApp.getFileById("### File ID ###");
  file.makeCopy();
}
Run Code Online (Sandbox Code Playgroud)

示例脚本 2

此示例用于使用电子表格上的对话框打开复制的文件。由于复制的文件作为新窗口打开,请允许打开弹出窗口。

  1. 将以下脚本复制并粘贴到电子表格的容器绑定脚本中。
  2. 运行dialog()
  3. 按电子表格对话框上的复制按钮。

通过上述流程,文件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();
}
Run Code Online (Sandbox Code Playgroud)