如何将Google Workspace Schema完整数据写入Google Sheet单个单元格
解决方案:将Google Workspace Schema完整信息写入单个单元格并转换console.log输出为变量
一、将每个Schema完整信息写入单个单元格
你遇到的字段拆分问题,是因为直接将Schema对象传入setValue时,Google Sheets会自动解析对象属性并拆分到多个单元格。解决方法是把每个Schema对象转换为格式化的JSON字符串,这样就能完整存入单个单元格,保留所有层级的字段结构。
示例代码:
function exportSchemasToSheet() { // 获取域内所有Schema const allSchemas = AdminDirectory.Schemas.list('my_customer').schemas; if (!allSchemas || allSchemas.length === 0) { console.log("未找到任何Schema"); return; } // 定位目标工作表(可根据实际需求修改,比如指定工作表名称) const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("你的工作表名称"); // 起始单元格为U4,对应行号4,列号21(U是第21列) const startRow = 4; const targetColumn = 21; // 遍历每个Schema,写入对应单元格 allSchemas.forEach((schema, idx) => { // 将Schema对象转为带缩进的JSON字符串,保留完整结构 const schemaFullStr = JSON.stringify(schema, null, 2); // 计算目标单元格行号:从startRow开始,逐个往下 const targetRow = startRow + idx; targetSheet.getRange(targetRow, targetColumn).setValue(schemaFullStr); }); }
关键说明:
JSON.stringify(schema, null, 2):将复杂的Schema对象转换为人类可读的JSON字符串,第三个参数2表示用2个空格缩进,方便在单元格内查看层级结构。- 每个Schema对应一个单元格,不会出现字段拆分的问题,完整保留所有内部字段。
二、将console.log的输出转为变量用于setValue
console.log本身只是将内容输出到控制台,无法直接反向获取其输出内容。但你可以直接把原本要打印的内容赋值给变量,再转换为和console.log输出一致的格式:
示例代码:
function logToVariableAndWrite() { const schema = AdminDirectory.Schemas.get('my_customer', '你的Schema名称'); // 直接将Schema对象转换为和console.log输出一致的格式化字符串 const logEquivalentStr = JSON.stringify(schema, null, 2); // 将变量写入单元格 SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('U4').setValue(logEquivalentStr); }
关键说明:
- 当你用
console.log(schema)时,控制台会输出格式化后的对象结构,JSON.stringify(schema, null, 2)就能生成完全一致的字符串格式。 - 直接把这个字符串变量传入
setValue,就能将原本console.log的内容写入指定单元格。
内容的提问来源于stack exchange,提问作者Nuno Miguel
相关产品推荐
相关产品推荐

