对于像我这样阅读这个旧答案的人来说,这只是一个“提醒”。大多数解决方案已被弃用。你必须使用“moveTo”,你不需要从根方向或其他东西中删除。
请查看此链接以获取更多详细信息。
我这样做的解决方案:
/**
* function createSS
* @description: Creates a new SpreadSheet with imported values and directly in provided folder
* @param {string} ssName name of SpreadSheet
* @param {object} sheetData values as range
* @param {object} ssFolder reference to a folder
*/
function createSS(ssName, sheetData, ssFolder = false){
var ss = SpreadsheetApp.create(ssName);
ss.setSpreadsheetLocale("de");
if(ssFolder){
// Move to provided folder
var file = DriveApp.getFileById(ss.getId());
file.moveTo(ssFolder);
}
var sheet = ss.getActiveSheet();
sheet.getRange(1, 1, sheetData.length, sheetData[0].length).setValues(sheetData);
return sheet;
}
文件夹分配示例:
var folders = DriveApp.getFileById(ssFileId).getParents();
var folder = folders.next();
// add new file (directly in correct folder)
var sourceSheet = createSS(newFileName, relevantValues, folder);
(如果您确定您的文件仅在 1 个文件夹中,则只能以这种方式工作。否则,请使用 .hasNext() 和循环执行)