【发布时间】:2020-10-10 15:43:42
【问题描述】:
我找到了保存电子表格副本的脚本,但到目前为止,我无法弄清楚如何修改以下代码以将我的电子表格保存到新创建的/已经存在的文件夹中。
//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 中。
-
我想保存一份副本,并将原始文件保留在原处。
【问题讨论】:
-
在你的脚本中,好像当输入
FOLDER_ID的文件夹名称是NEW_FOLDER_NAME时,返回的是文件夹ID,而当输入FOLDER_ID的文件夹名称不是@ 987654325@,返回新建文件夹的文件夹ID为NEW_FOLDER_NAME。所以我无法理解I've not been able to figure out how to modify the following code to save my spreadsheet into the newly created/already existing folder.。你能解释一下你的目标的细节吗? -
如果该文件夹不存在,我的目标是根据 A1 的内容创建一个新文件夹并将文件保存在该文件夹中。如果文件夹已经存在,则将文件保存在现有文件夹中,文件名在A2中。
-
感谢您的回复。我注意到已经发布了 2 个答案。在这种情况下,我想尊重他们。我认为这些将解决您的问题。
-
嗨,我根据您在 Yuri Khristich 提供的答案下方提供的 cmets 在我的答案中编辑了我的代码 sn-p(您想要复制文件并指定复制的文件名)。我还提供了函数
createFolder的替代代码,这将减少它的大小和复杂性。我希望这对你有帮助。
标签: google-apps-script google-sheets