Apps Script не испытывает затруднений при использовании нескольких таблиц в одном скрипте. Я бы добавил еще один массив для хранения Ids , поэтому вам не придется получать их из URL:
var spreadsheetlinks = []
var spreadsheetIds = [];
//creates individual sheet for each player, then adds the link of their sheet to a list
for(i=0;i<playerarray.length;i++){
var spreadsheetname = playerarray[i];
var newspreadsheet = SpreadsheetApp.create(spreadsheetname);
spreadsheetlinks.push(DriveApp.getUrl(newspreadhseet));
spreadsheetIds.push(newspreadsheet.getId);
}
Вы можете открыть таблицы, используя openById , поэтому вы можете использовать их неограниченное количество:
var sprSheet1 = SpreadsheetApp.openById('id 1');
var sprSheet2 = SpreadsheetApp.openById('id 2');
var sprSheet3 = SpreadsheetApp.openById('id 3');
...
или даже лучше:
var sprSheets = [];
for (var j = 0; j < spreadsheetIds.length; j++){
sprSheets.push(SpreadsheetApp.openById(spreadsheetIds[j]);
}
Относительно проблемы SpreadsheetApp.create , убедитесь, что вы авторизовали необходимые области:
Для сценариев, использующих этот метод, требуется авторизация с одной или несколькими из следующих областей:
https://www.googleapis.com/auth/spreadsheets.currentonly https://www.googleapis.com/auth/spreadsheets
Вы можете проверить их в скрипте приложений View > Manifest file
. Если вы никогда не касались этого , они не будут отображаться. Вы можете добавить их вручную:
"oauthScopes": [
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/drive.file"
]
Если вы все еще получаете проблему с разрешениями при создании электронной таблицы, вы можете проверить функцию playerArray
, чтобы увидеть, действительно ли она возвращает строку.