首页 > 解决方案 > 如何从一个“while”另一个“while”传递存储值?

问题描述

在 Google Sheet 中,我已经根据需要在整个父文件夹和子文件夹中列出了所有过滤的文件。我也将所有重要的细节都推送到了工作表中。

我现在的问题是我试图从childFolders while获取每个childFolderId值并将其传递到fileIter while然后推入要在 Google Sheet 中显示的数组列表。

这是代码:

var parent = DriveApp.getFolderById(folderId);                          
                
getChildFiles(parentName, parent, currentSheet, list, excluded);

主要功能是:

function getChildFiles(parentName, parent, sheet) {

var fileIter = parent.searchFiles("title contains 'completed'and title contains 'Verification 
Visit Direct Suppliers'and mimeType='application/vnd.openxmlformats- 
officedocument.spreadsheetml.sheet'"); 

var output = [];

var childFolders = parent.getFolders();

while (childFolders.hasNext()) {
  var childFolder = childFolders.next();
  var childFolderName = childFolder.getName();

getChildFiles(
  parentName + ' |--> ' + childFolderName, childFolder,sheet
  );   

 } 

while (fileIter.hasNext()) { 
 var file = fileIter.next();
 var fileName = file.getName();
 var fileID = file.getId();

 var path = parentName + ' |--> ' + fileName;

 output.push([fileID, fileName, path]);
}

 if (output.length) {
 var last_row = sheet.getLastRow();
 sheet.getRange(last_row + 1, 1, output.length, 3).setValues(output);
 SpreadsheetApp.flush();
} 

}

我正在尝试在不弄乱过滤代码的情况下获取childFolderId 。这是因为如果我在 childFolders while 中插入fileIter Google 工作表中不会列出任何文件。

但是,如果我设法列出除childFolderId之外的所有文件时将两者分开

如何获取childFolderId的值并将其推送到工作表中?

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


推荐阅读