我该如何修改以将电子表格保存到新文件夹中

埃里克·斯特纳鲁德(Erik Stenerud)

我找到了保存电子表格副本的脚本,但是到目前为止,我还无法弄清楚如何修改以下代码将电子表格保存到新创建/已经存在的文件夹中。

//Create folder if it does not exist
function createFolder(folderID, folderName){
  var parentFolder = DriveApp.getFolderById(folderID);
  var subFolders = parentFolder.getFolders();
  var doesntExist = true;
  var newFolder = '';
  
  // Check if folder already exists.
  while(subFolders.hasNext()){
    var folder = subFolders.next();
    
    //If the folder exists return the id of the folder
    if(folder.getName() === folderName){
      doesntExist = false;
      newFolder = folder;
      return newFolder.getId();
    };
  };
  //If the folder doesn't exist, then create a new folder
  if(doesntExist == true){
    //If the file doesn't exist
    newFolder = parentFolder.createFolder(folderName);
    return newFolder.getId();
  };
};
 
function start(){
  var FOLDER_ID = 'my folder id';
  var NEW_FOLDER_NAME = SpreadsheetApp.getActiveSheet().getRange('A1').getValue();
  var myFolderID = createFolder(FOLDER_ID, NEW_FOLDER_NAME);
};

更新:

  • 我的目标是如果该文件夹不存在,则根据单元格A1的内容创建一个新文件夹,并将文件保存在该文件夹中。如果该文件夹已经存在,则将文件保存在现有文件夹中。文件名将在单元格A2中。

  • 我想保存一个副本,然后将原始文件保留在原处。

am

自2020年9月30日起,云端硬盘文件不能包含多个父文件夹。

因此,您应该将文件移动到新文件夹,或者制作该文件的副本。但是您不能在两个不同的文件夹中拥有相同的文件。

如果要将文件移动到新文件夹,则应使用moveTo(destination);如果要将文件复制到新文件夹,则应使用makeCopy(destination)

更新:您在注释中提到要复制文件(而不是移动文件)并指定复制文件的名称(与A2中的值相对应)。因此,您应该使用makeCopy(name,destination)

考虑到您要保存活动电子表格,您的主要功能可能如下所示:

function start(){
  var PARENT_FOLDER_ID = 'my folder id';
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var NEW_FOLDER_NAME = sheet.getRange('A1').getValue();
  var FILE_NAME = sheet.getRange('A2').getValue();
  var spreadsheetId = ss.getId();
  var file = DriveApp.getFileById(spreadsheetId);
  var folder = createFolder(PARENT_FOLDER_ID, NEW_FOLDER_NAME);
  file.makeCopy(FILE_NAME, folder);
}

createFolder使用Folder.getFoldersByName(name)可以大大减小该函数的大小

function createFolder(folderID, folderName){
  var parentFolder = DriveApp.getFolderById(folderID);
  var subFolders = parentFolder.getFoldersByName(folderName);
  if (subFolders.hasNext()) return subFolders.next(); // Return existing folder
  else return parentFolder.createFolder(folderName); // Return created folder
}

笔记:

  • 由于云端硬盘中的这种行为更改,因此不建议使用诸如addFile(child)之类的方法

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过App脚本在特定文件夹中创建电子表格

来自分类Dev

如何使用电子表格重命名多个文件夹?

来自分类Dev

我需要使用脚本将Google电子表格的副本保存到特定目录

来自分类Dev

循环浏览文件夹下的所有子文件夹和文件,并将最后修改的日期信息写入Excel电子表格

来自分类Dev

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

来自分类Dev

用于将一张工作表复制到Google云端硬盘中特定文件夹中的各种电子表格的脚本

来自分类Dev

如何从特定的Google云端硬盘文件夹中获取电子表格?

来自分类Dev

如何在我的Google表格文件中获取电子表格的总数

来自分类Dev

数据扩充后如何在不循环的情况下将图像保存到新文件夹中

来自分类Dev

如何在特定文件夹内创建电子表格?

来自分类Dev

将电子表格另存为给定文件夹中的csv文件

来自分类Dev

如何使用OS将文件保存到新文件夹?

来自分类Dev

将电子表格中的工作表另存为pdf,并保存在同一Google驱动器文件夹中

来自分类Dev

在与当前文件相同的文件夹中创建一个Google电子表格

来自分类Dev

将电子表格复制到新文件,指定选项卡

来自分类Dev

如何通过App脚本在特定文件夹中创建电子表格

来自分类Dev

如何使用电子表格重命名多个文件夹?

来自分类Dev

使用VB允许用户选择一个文件夹,该文件夹将所有文件加载到电子表格中

来自分类Dev

如何使用Google脚本将电子表格复制到GDrive上的specifc文件夹中,而无需复制关联的表单和脚本

来自分类Dev

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

来自分类Dev

将电子表格复制到特定文件夹并从副本中删除查看器

来自分类Dev

从Excel电子表格中读取,并使用XLSX中的数据重命名多个文件夹

来自分类Dev

如何将图像保存到新文件夹Matlab

来自分类Dev

如何使用VBA在Excel电子表格中的列表中打开文件夹

来自分类Dev

我如何使用类似的东西将剑道电子表格中的 excel 保存到远程服务器中

来自分类Dev

VBA 通过电子表格将新文件名添加到

来自分类Dev

Gsheets Apps 脚本:在 Google Drive 的特定文件夹中制作电子表格的副本

来自分类Dev

将电子表格从文件夹转换为 PDF(保存到不同位置)

来自分类Dev

如何从我的电子表格中获取 JSON 文件

Related 相关文章

  1. 1

    如何通过App脚本在特定文件夹中创建电子表格

  2. 2

    如何使用电子表格重命名多个文件夹?

  3. 3

    我需要使用脚本将Google电子表格的副本保存到特定目录

  4. 4

    循环浏览文件夹下的所有子文件夹和文件,并将最后修改的日期信息写入Excel电子表格

  5. 5

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

  6. 6

    用于将一张工作表复制到Google云端硬盘中特定文件夹中的各种电子表格的脚本

  7. 7

    如何从特定的Google云端硬盘文件夹中获取电子表格?

  8. 8

    如何在我的Google表格文件中获取电子表格的总数

  9. 9

    数据扩充后如何在不循环的情况下将图像保存到新文件夹中

  10. 10

    如何在特定文件夹内创建电子表格?

  11. 11

    将电子表格另存为给定文件夹中的csv文件

  12. 12

    如何使用OS将文件保存到新文件夹?

  13. 13

    将电子表格中的工作表另存为pdf,并保存在同一Google驱动器文件夹中

  14. 14

    在与当前文件相同的文件夹中创建一个Google电子表格

  15. 15

    将电子表格复制到新文件,指定选项卡

  16. 16

    如何通过App脚本在特定文件夹中创建电子表格

  17. 17

    如何使用电子表格重命名多个文件夹?

  18. 18

    使用VB允许用户选择一个文件夹,该文件夹将所有文件加载到电子表格中

  19. 19

    如何使用Google脚本将电子表格复制到GDrive上的specifc文件夹中,而无需复制关联的表单和脚本

  20. 20

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

  21. 21

    将电子表格复制到特定文件夹并从副本中删除查看器

  22. 22

    从Excel电子表格中读取,并使用XLSX中的数据重命名多个文件夹

  23. 23

    如何将图像保存到新文件夹Matlab

  24. 24

    如何使用VBA在Excel电子表格中的列表中打开文件夹

  25. 25

    我如何使用类似的东西将剑道电子表格中的 excel 保存到远程服务器中

  26. 26

    VBA 通过电子表格将新文件名添加到

  27. 27

    Gsheets Apps 脚本:在 Google Drive 的特定文件夹中制作电子表格的副本

  28. 28

    将电子表格从文件夹转换为 PDF(保存到不同位置)

  29. 29

    如何从我的电子表格中获取 JSON 文件

热门标签

归档