如何将Google Apps Script生成的文件夹ID写入表格A1单元格?
问题原因及修复方案
核心问题点
- 工作表获取方式错误:
SpreadsheetApp.getActiveSpreadsheet().sourceSheet是无效写法,sourceSheet并非Spreadsheet对象的内置属性,无法直接通过这种方式获取工作表。 - setValues()方法参数不匹配:
setValues()要求传入二维数组(格式如[[值]]),但你传入的newFolderID是单个字符串,类型不符合要求;针对单个单元格写入,更适合使用setValue()方法。
修复后的代码示例
方式一:使用setValue()(单个单元格场景推荐)
// 获取目标工作表,替换"Sheet1"为你实际的工作表名称 const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); // 创建文件夹并获取ID const newFolderID = parentFolder.createFolder(newFoldername).getId(); // 写入A1单元格 targetSheet.getRange("A1").setValue(newFolderID);
方式二:使用setValues()(需传入二维数组)
const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const newFolderID = parentFolder.createFolder(newFoldername).getId(); // 将单个ID包装为二维数组后传入 targetSheet.getRange("A1").setValues([[newFolderID]]);
额外说明
- 若要使用当前活跃的工作表,可将
getSheetByName("Sheet1")替换为getActiveSheet()。 - 确保脚本已获得对应权限:首次运行时需授权访问Google表格和云端硬盘,按提示完成授权流程即可。
内容的提问来源于stack exchange,提问作者manc_stu
相关产品推荐
相关产品推荐

