如何将谷歌驱动器中的所有子文件夹名称列出到谷歌表格中?
这是代码,它正在工作,但我无法将它们放入谷歌表格。
在此处输入图像描述 在记录器的位置我需要替换谷歌表。请在这种情况下帮助我?
如果您打算使用自定义函数在 Google Sheets 中编写子文件夹名称列表,它将不起作用,因为您的函数在使用 DriveApp 时需要授权,它会抛出错误消息You do not have permission to call X service.
,该服务需要用户授权,因此无法使用在此处所述的自定义函数中。
您可以使用电子表格服务在 Google 表格中写入您的子文件夹名称。但是您需要指定要写入数据的特定工作表和单元格。
function findSubFolder(){
var childFolder = DriveApp.getFolderById('xxxxxxxx').getFolders();
var activeSheet = SpreadsheetApp.getActiveSheet();
var activeCell = activeSheet.getActiveCell();
var childNames = [];
while (childFolder.hasNext()) {
var child = childFolder.next();
Logger.log(child.getName());
childNames.push([child.getName()]);
}
activeSheet.getRange(activeCell.getRow(),activeCell.getColumn(),childNames.length,1).setValues(childNames);
}
childNames
将其添加到数组中请注意,当我推送我使用的子名称
[sub-folder name]
时,当我们想要使用 Range.setValues() 时需要这样做,它接受我想要多行的二维数组。
childNames
从活动单元格开始将数组写入活动工作表。使用Sheet.getRange(row, column, numRows, numColumns)和Range.setValues(values)如果您想在单个单元格(在您的活动单元格中)上写子文件夹名称,您可以替换
activeSheet.getRange(activeCell.getRow(),activeCell.getColumn(),childNames.length,1).setValues(childNames);
至
activeCell.setValue(childNames.flat().toString());