Если вы планируете использовать настраиваемую функцию, чтобы написать список дополнительных - имена папок в Google Таблицах. Это не будет работать, потому что ваша функция требует авторизации при использовании 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);
}
Что оно делает?
- Получите активный лист с помощью SpreadsheetApp.getActiveSheet (). и активная ячейка с помощью Sheet.getActiveCell ()
- Получите все имена своих подпапок и добавьте их в массив
childNames
, используя Array.prototype.push ()
Обратите внимание: когда я нажимал дочерние имена, я использовал [sub-folder name]
. Это необходимо, когда мы хотим использовать Range.setValues (), который принимает двумерный массив, в котором я хочу иметь несколько строк.
- Запишите массив
childNames
на активный лист, начиная с активной ячейки. Используя Sheet.getRange (row, column, numRows, numColumns) и Range.setValues (значения )
Выход:
Если вы хотите записать имена подпапок в одной ячейке (в вашей активной ячейке), вы можете заменить
activeSheet.getRange(activeCell.getRow(),activeCell.getColumn(),childNames.length,1).setValues(childNames);
to
activeCell.setValue(childNames.flat().toString());
Выход:
person
Ron M
schedule
28.04.2021