有没有更快的方法在特定文件夹中创建谷歌电子表格?

Kar*_*her 3 optimization google-sheets google-apps-script google-drive-api

大家好!要在特定文件夹中创建新电子表格,我使用以下脚本

function create_ss_in_folder(folder, name) {
  var ss = SpreadsheetApp.create(name);
  var id = ss.getId();
  var file = DriveApp.getFileById(id);
  var new_file = file.makeCopy(name, get_folder_by_name(folder));
  id = new_file.getId();
  DriveApp.removeFile(file);
  return id;
}
Run Code Online (Sandbox Code Playgroud)

运行时间超过 8.4 秒,主要是由于 makeCopy 调用(6.672 秒)。那么,是否有更快的方法在特定文件夹中创建谷歌电子表格?

Cam*_*rts 5

一般来说,这些类型的驱动器操作(创建、复制、删除)每次都会花费几秒钟的时间。

您可以稍微加快速度,只需将文件移动到文件夹中,而不是将电子表格复制到文件夹中然后删除原始文件:

 function create_ss_in_folder(folder, name) {
  var ss = SpreadsheetApp.create(name);
  var id = ss.getId();
  var file = DriveApp.getFileById(id);
  var folder = get_folder_by_name(folder);
  folder.addFile(file);
  DriveApp.getRootFolder().removeFile(file);
  return id;
}
Run Code Online (Sandbox Code Playgroud)

请参阅: https: //developers.google.com/apps-script/reference/drive/folder

这应该可以为您节省几秒钟。

另一种选择是使用高级驱动器服务,它应该允许您一步直接在所需文件夹内创建电子表格文件。我不确定这会快多少。

请参阅: https: //developers.google.com/apps-script/advanced/drive